2012-12-11 34 views
0

我試過這個喚醒示例:https://github.com/commonsguy/cw-omnibus/tree/master/AlarmManager/WakefulAlarmManager和WakeLock示例

但我有幾個問題。

我需要<action android:name="android.intent.action.BOOT_COMPLETED" />?因爲我的測試意圖總是爲空。

而且inScheduledService是:

@Override 
    protected void doWakefulWork(Intent intent) { 
     Log.d(getClass().getSimpleName(), "I ran!"); 
    } 

但這種方法從來沒有發射。

在WakefulintentService有這種方法,這也是從來沒有發射:

@Override 
    final protected void onHandleIntent(Intent intent) { 
     try { 
      doWakefulWork(intent); 
     } finally { 
      PowerManager.WakeLock lock = getLock(this.getApplicationContext()); 

      if (lock.isHeld()) { 
       lock.release(); 
      } 
     } 
    } 

什麼改變,這樣我會得到I ran作爲輸出?

回答

1

我需要嗎?

僅當您希望在重新啓動後再次設置警報時。默認情況下,設備重新引導時會消除警報。

但是這種方法從來沒有被解僱。

是的。您可以通過運行該項目來說明這一點。

在WakefulintentService

方法便是這一方法還從來沒有發射:

是的,它是。您可以通過運行該項目來說明這一點。

例如,這裏是一個運行我剛纔做的輸出:

12-11 14:03:05.671: D/ScheduledService(3322): I ran! 
12-11 14:03:10.671: D/ScheduledService(3322): I ran! 
12-11 14:03:15.671: D/ScheduledService(3322): I ran! 
12-11 14:03:20.671: D/ScheduledService(3322): I ran!