2016-05-11 178 views
0

我正在從應用程序獲取從數據庫的鬧鐘時間每2凌晨,然後在指定的時間活動顯示,我的應用程序工作正常,但是當我手動更改數據/時間設備,之前的警報被觸發,我應該防止發生這種情況。從AlarmManager取消警報

這裏是我的PendingIntent

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

每個_id是獨一無二的,當我作出更改日期的事件接收器之前,我的鬧鐘取消法進行燒結過去的警報熄滅!

有些身體能幫助解決這個問題嗎?

回答

0

試試這個代碼:

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

對於取消報警:

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

編輯

那麼你可以尋找答案和修改按您的要求:

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

喜請注意,我想,當系統日期/時間改爲取消報警!此代碼運行之前,警報被解僱! –

+0

@SeyedMassoudMotallebi檢查編輯。並告訴我所提供的鏈接是否有用。 –

+0

嗨,這裏是取消鬧鐘的代碼: –

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();