2012-10-03 26 views
3

我開發android的通知應用程序,顯示了在特定的日期和時間,我設置使用日期選取通知。它顯示正確,如果我的應用程序在後臺運行。但是,當我強制停止我的應用程序或如果設備關閉&重新啓動,通知不顯示。即使應用程序強制關閉或設備重新啓動,如何顯示通知。如何顯示在設備通知啓動

+0

使用alarmmanager – njzk2

回答

2

你不能。通知附加到應用程序的上下文中。如果應用程序被殺害/銷燬,您的通知也隨之消失。

你可以做的是重新創建,一旦你的應用程序的通知,或者它的服務已啓動。爲此,請確保您捕獲android.intent.action.BOOT_COMPLETED廣播,以便自動執行此操作。

+0

使用服務 –

+0

可以,您可以通過創建服務通知過是否有可能。但在通知的情況下,你可以簡單地重新創建它們,只要你在你的BroadcastReceiver – waqaslam

+0

中得到android.intent.action.BOOT_COMPLETED事件,謝謝,它工作。廣播正在爲我工​​作。 –

1

您應該考慮使用AlarmManager而不是服務。 用自定義意圖在期望的日期/時間設置鬧鐘。在BroadcastReceiver中,您可以創建並顯示通知。

如果設備重新啓動,你可能也需要聽BOOT_COMPLETED意圖並重置報警。

編輯:

一個例子:

long time = // time in milliseconds of when you want your Alarm 

PendingIntent mIntent = PendingIntent.getBroadcast(context, 
       0, new Intent("YOUR_CUSTOM_INTENT"), PendingIntent.FLAG_UPDATE_CURRENT); 

AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);   
am.set(AlarmManager.RTC_WAKEUP, 
         time, mIntent); 

然後抓住YOUR_CUSTOM_INTENT意圖在一個BroadcastReceiver,顯示該通知,並設置以下報警。

+0

但是有問題,我使用的通知經理,在我的應用程序的未來通知的日期和時間自動生成。當所需的通知時間匹配時,將顯示通知並再次顯示共享首選項文件中設置的下一個通知日期和時間。如果我的服務關閉,那麼下一個通知日期將如何設置。任何解決方案,傢伙。 –

+0

如果您使用AlarmManager,當您的BroadcastReceiver收到意圖時,您將顯示通知,併爲以下日期設置新的鬧鐘。 *您不需要服務*。您設置的警報將在您的應用程序關閉後繼續存在,您將收到您給警報的意圖。在時機成熟時。 如果設備重新啓動,你趕上BOOT_COMPLETED意圖和重置最後一組報警(你需要記住的日期和時間的地方),或直接表現出來,如果日期已過。 –

+0

謝謝,我用廣播,它爲我工作..感謝很多 –

相關問題