2011-11-22 33 views
0

我有一個任務,需要使用本地推送通知來開發android應用程序。我也開發了這個應用程序,但有些時候當用戶設備處於睡眠模式時,它不能通知用戶設備。在睡眠模式下,應用程序不會通知本地通知

是他們的任何代碼來執行應用程序,並在我的設備處於睡眠模式時通知我。請提供任何示例或源代碼。

+0

我想你正在使用AlarmManager來觸發通知,不是嗎? – Huang

回答

1

你可能要收購喚醒鎖,就像這樣:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP 
      | PowerManager.ON_AFTER_RELEASE, "My Tag"); 
wl.acquire(); 
    /// ..screen will stay on during this section.. 
wl.release(); 

ACQUIRE_CAUSES_WAKEUP

正常喚醒鎖定實際上並沒有打開照明。相反,它們會導致照明在打開後(例如,來自用戶活動)保持打開狀態。當WakeLock被採集時,該標誌將強制屏幕和/或鍵盤立即打開。一個典型的用途是對於用戶立即看到的重要通知。

+1

不要忘記在清單文件中添加權限:'<使用權限android:name =「android.permission.WAKE_LOCK」/>'否則應用程序崩潰。 – Zhang