Ich möchte Alarmmanager setzen auf alle 24 Stunden zu wiederholen, aber mein Code funktioniert nicht.Android Alarmmanager wiederholt unerwünschte
I gesetzt Alarmmanager in MainActivity eine Pop-up-Benachrichtigung über AlarmReceiver auszulösen, die eine Absicht zum MainActivity sendet.
ich überprüfen AlarmManger auch, ob es gesetzt ist, aber es gibt immer falsch, wenn ich alarmIntent2 nicht die von (###) in meinem Code unkommentiert ist. Und wenn ich alarmIntent2 verwende, bekomme ich keine Benachrichtigung, AlarmManager ist dann nicht richtig eingestellt.
Jedes Mal, wenn MainActivity aufgerufen wird, werden Alarmmanager wieder gesetzt.
Was mache ich falsch? Danke.
MainActivity.class
MainActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent myIntent = this.getIntent();
if(myIntent.getExtras() != null) {
String nid = myIntent.getExtras().containsKey("nid") ? myIntent.getExtras().getString("nid") : "-";
if(nid.equals("1234")) {
startFragmentActivityToShowMessage();
}
else {
addNotification();
}
}
}
private void addNotification() {
boolean alarmUp = false;
alarmUp = (PendingIntent.getBroadcast(this, 0,
new Intent("com.mypackage.AlarmReceiver.class"),
PendingIntent.FLAG_NO_CREATE) != null);
if(!alarmUp) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 8);
calendar.set(Calendar.MINUTE, 15);
calendar.set(Calendar.SECOND, 01);
Intent alarmIntent = new Intent(this, com.mypackage.AlarmReceiver.class);
// (###) Intent alarmIntent2 = new Intent("com.mypackage.AlarmReceiver.class"); (###)
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1000 * 60 * 60* 24, pendingIntent);
}
}