1
我剛開始將我的iOS應用程序轉換爲Android。 但我遇到以下問題。Android通知不會在給定時間彈出
我創建了多個類,以便彈出警報。 但問題是,每5/10秒而不是給定的時間彈出警報彈出窗口。 我知道這事做用下面的代碼:
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime() + 5000, 10000, pendingIntent);
但奇怪的是,該代碼上面給定的時間不會觸發任何事情: (否則我可能已經刪除了剛剛過去的代碼行)
private void setRecurringAlarm(Context context) {
Calendar updateTime = Calendar.getInstance();
updateTime.set(Calendar.HOUR_OF_DAY, 17);
updateTime.set(Calendar.MINUTE, 18);
Intent open = new Intent(this, AlarmReceiver.class);
open.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, open, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(MyApp.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime() + 5000, 10000, pendingIntent);
該代碼有什麼問題,因爲鬧鐘不會在17:18彈出,而是每次在5或10秒後彈出。 我創建的用於顯示通知的服務並非在17:18開始顯示消息。 這是否與我的時區(阿姆斯特丹時間)有關?
是的,這就是它做什麼,現在我只是希望它在上面給出的特定時間關閉,但它不起作用 - 我更新了我的第一篇文章。 – user1756912
因爲你正在設置updateTime,但實際上並沒有對它做任何事情。您傳遞給.setRepeating的第二個參數應該是多長時間,直到第一次廣播意圖。我想你想使用updateTime.getTimeInMillis()作爲第二個參數。現在使用的東西似乎是設備運行了多長時間(自上次重新啓動以來)+ 5秒。 – raydowe
感謝您的提示,下面的代碼爲我工作! alarmManager.set(AlarmManager.RTC_WAKEUP,updateTime.getTimeInMillis(),pendingIntent); – user1756912