2016-09-15 54 views
0

是否可以更改Intent,每次觸發AlarmManager時都有額外的功能?每次觸發時是否可以更改AlarmManager的意圖?

+1

http://stackoverflow.com/questions/14106299/change-the-intent-of-pendingintent-which-is-used-by-an-alarmmanager檢查了這一點 –

+0

試過FLAG_UPDATE_CURRENT仍然沒有工作。 我的目標是改變臨時演員,不需要採取行動。 – atanti

+0

我應該每次調用AlarmManager方法嗎? – atanti

回答

0
AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE); 
Intent i = new Intent(context, Alarm.class); 
// Extras aren't used to find the PendingIntent 
PendingIntent pi = PendingIntent.getBroadcast(context, tag, i, 
     PendingIntent.FLAG_NO_CREATE); // find the old PendingIntent 
if (pi != null) { 
    // Now cancel the alarm that matches the old PendingIntent 
    am.cancel(pi); 
} 
// Now create and schedule a new Alarm 
i = new Intent(context, NewAlarm.class); // New component for alarm 
i.putExtra("position", tag); // Whatever new extras 
pi = PendingIntent.getBroadcast(context, tag, i, PendingIntent.FLAG_CANCEL_CURRENT); 
// Reschedule the alarm 
am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+ time, pi); // Millisec * Second * Minute 

是每次你需要取消當前和推出新的一個,如果你想在喜歡的數據臨時演員,動作,組件的任何意圖的任何變化。

+0

一旦它被觸發,它會運行新的意圖,還是我需要再次調用該方法? – atanti

+0

一旦報警觸發,我該如何調用該方法? – atanti

+0

如果您必須取消上一個,那麼肯定需要再次調用方法來創建新方法。當你在這部分代碼中發出警報時,會發出呼叫功能。試試這個希望,這將有助於我對此不太確定 –

相關問題