In meiner Android-Anwendung möchte ich eine Benachrichtigung generieren, wenn die aktuelle Zeit mit der Zeit übereinstimmt, die ich aus meiner Datenbank abgerufen habe. Und die Benachrichtigung sollte auch dann generiert werden, wenn die Anwendung nicht ausgeführt wird. Dafür habe ich so etwas gemacht, aber das funktioniert nicht (es wird keine Benachrichtigung erzeugt). Ich bin neu bei Android, und ich habe viele Beispiele und Tutorials zur Lösung dieses Problems gesehen, aber sie haben nicht geholfen. Also bitte geben Sie Antwort, was soll ich tun, um das gewünschte Ergebnis zu bekommen?Benachrichtigung generieren, wenn die Zeit übereinstimmt, auch ohne Anwendung - ANDROID
In MainActivity.java Ich tue dies:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*here I am retrieving time from database*/
String time_from_database = "20:00:00";
if(Calendar.getInstance()==time_from_database) {
AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(MainActivity.this, NotGen.class);
PendingIntent alarmIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intent, 0);
alarmMgr.set(AlarmManager.RTC, Calendar.getInstance(), alarmIntent);
}
}
}
dieser Code von NotGen.java Klasse:
public class NotGen extends BroadcastReceiver {
public NotificationCompat.Builder mBuilder;
@Override
public void onReceive(Context context, Intent intent) {
PendingIntent pIntent = PendingIntent.getActivity(context,0,intent,0);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context);
mBuilder.setTicker("Ticker Title");
mBuilder.setSmallIcon(R.drawable.my_img);
mBuilder.setContentTitle("Notification Alert, Click Me!");
mBuilder.setContentText("Hi, This is Android Notification Detail!");
mBuilder.setContentIntent(pIntent).getNotification();
mBuilder.setAutoCancel(true);
mBuilder.getNotification().flags |= Notification.FLAG_AUTO_CANCEL;
Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
mBuilder.setSound(alarmSound);
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(0,mBuilder.build());
}
}
Sie benötigen einen Service, wenn Sie Ihre Alarme wollen Neustarts, um zu überleben und/oder inaktiven App. –