Android:如何使用AlarmManager我需要AlarmManager在設置20分鐘后觸發一段代碼。有人可以給我看一下如何AlarmManager在Android中使用的示例代碼嗎?我已經玩了幾天的代碼,它只是不起作用。
3 回答

躍然一笑
TA貢獻1826條經驗 獲得超6個贊
“一些示例代碼”并非如此簡單AlarmManager
。
這是一個顯示以下設置的片段AlarmManager
:
AlarmManager mgr=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);Intent i=new Intent(context, OnAlarmReceiver.class);PendingIntent pi=PendingIntent.getBroadcast(context, 0, i, 0);mgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), PERIOD, pi);
在這個例子中,我正在使用setRepeating()
。如果你想要一次性警報,你就可以使用set()
。請務必在與初始參數中使用的時間基準相同的時間內為警報提供時間set()
。在我上面的例子中,我正在使用AlarmManager.ELAPSED_REALTIME_WAKEUP
,所以我的時間基準是SystemClock.elapsedRealtime()
。

aluckdog
TA貢獻1847條經驗 獲得超7個贊
您需要做的是首先創建您需要安排的意圖。然后獲取該intent的pendingIntent。您可以安排活動,服務和廣播。安排活動,例如MyActivity:
Intent i = new Intent(getApplicationContext(), MyActivity.class); PendingIntent pi = PendingIntent.getActivity(getApplicationContext(),3333,i, PendingIntent.FLAG_CANCEL_CURRENT);
將此pendingIntent提供給alarmManager:
//getting current time and add 5 seconds in it Calendar cal = Calendar.getInstance(); cal.add(Calendar.SECOND, 5); //registering our pending intent with alarmmanager AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); am.set(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(), pi);
現在MyActivity將在應用程序啟動5秒后啟動,無論您停止應用程序還是設備進入睡眠狀態(由于RTC_WAKEUP選項)。您可以閱讀完整的示例代碼調度活動,服務和廣播#Android
- 3 回答
- 0 關注
- 589 瀏覽
添加回答
舉報
0/150
提交
取消