2011-03-10 56 views
2

我做了一個應用程序,允許一個聽收音機,並已經實現了警報,這樣,當警報響起時,我可以有廣播劇。我現在用的是alarmManager和RTC_wakeup,似乎如果手機或插入到正常工作,如果手機沒有睡着(其中一種失敗的目的)。然而,當手機被拔出並睡着時,只有當我喚醒手機時,鬧鐘纔會熄滅。當我的Android被拔出並睡眠時,我可以喚醒我的Android嗎?

有沒有人知道這個解決方案?

+0

怎麼又是你的應用程序組成?你正在使用什麼來響應alrm通知(活動,服務,廣播接收器等)。當你說,它的工作原理插入的時候,我猜你已經「保持喚醒」在應用程序啓動 - >開發設置 - 不是最終用戶通常都會有。 – Squonk 2011-03-10 17:24:49

+0

AlarmManager alarmService =(AlarmManager)getOwnerActivity()getSystemService(Context.ALARM_SERVICE)。 \t \t \t \t alarmService.set(AlarmManager.RTC_WAKEUP,今天,pendInt);當我睡覺時(它打開電源按鈕睡覺它),但如果它睡覺它自己(空閒後),它似乎等到我喚醒它調用意圖 – kyle 2011-03-10 17:58:37

回答

1

這是我們如何做到的,它在你描述的情況下兩者的工作原理:

PendingIntent pi = null; 

private void startMonitor() { 
    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
    Intent i = new Intent(this, OnTickReceiver.class); 
    pi = PendingIntent.getBroadcast(this, 0, i, 0); 

    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, 
      System.currentTimeMillis() + 120 * 1000, 120 * 1000, pi); 
} 

private void stopMonitor() { 
    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
    alarmManager.cancel(pi); 
} 
+0

ty這個工程並幫助解決了我的問題。 – kyle 2011-03-14 16:02:17

+0

難道是「getBroadcast」,使得有差別,或「setRepeating」? – 2012-12-06 08:03:37

+0

我不知道凱爾是怎麼做到的,但是,是的,setRepeating是關鍵,儘管你也需要等待的意圖。 – vsm 2012-12-06 15:03:54