2016-05-11 6 views
0

Ich arbeite an einer Anwendung, die die Alarmzeit von der Datenbank alle 2 AM bekommt und dann zur angegebenen Zeit die Aktivität erscheint, meine App funktioniert gut, aber wenn ich manuell die Daten/Zeit des ändern Gerät werden vorhergehende Alarme ausgelöst und ich sollte dies verhindern. HierAlarme vom AlarmManager abbrechen

ist mein PendingIntent:

Intent i = new Intent(mContext, AlarmReceiver.class); 
    PendingIntent pi = PendingIntent.getBroadcast(G.context, _id, i, 
       PendingIntent.FLAG_UPDATE_CURRENT); 

die jeweils _id einzigartig ist, und wenn ich einen Empfänger für das Datum geändert Ereignis vor meinem Alarm machen abbrechen Methode gebrannt vorherigen Alarme gehen!

Kann ein Körper helfen, dieses Problem zu lösen?

Antwort

0

Versuchen Sie diesen Code:

Intent intent = new Intent(this, Mote.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 1253, intent, 0); AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.cancel(pendingIntent);

0

Für den Alarm:

Intent intent = new Intent(this, Mote.class); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 1253, intent, 0); 
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
alarmManager.cancel(pendingIntent); 

bearbeiten

Nun können Sie die Antwort suchen und ändern nach Ihren Wünschen:

How to stop Android AlarmManager when there is a manual system time change?

AlarmManager: how to schedule a daily alarm and deal with time changes

+0

hallo bitte beachten Sie, dass ich den Alarm aus, wenn das Systemdatum/Zeit geändert wird abbrechen möchten !! Bevor dieser Code ausgeführt wird, wird der Alarm ausgelöst !! –

+0

@SeyedMassoudMotallebi Überprüfen Sie, ob es bearbeitet werden kann. und sagen Sie mir, ob die bereitgestellten Links nützlich sind. –

+0

hi wieder hier ist der Code zum Abbrechen des Alarms: –

0
Intent intent1 = new Intent(G.context, DailyAlarmReceiver.class); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(G.context, 
    G.dateTimesetAlarm.getDayOfYear(), intent1, 0); 
mAlarmManager.cancel(pendingIntent); 
pendingIntent.cancel();