2013-10-29 19 views
2

如果我正在與我的應用程序進行交互(使用),但我的鬧鐘沒有問題,但如果我將其設置爲第二天而不與我的應用程序進行交互,則無法工作。因此我懷疑是因爲我的應用程序在那個時候沒有運行。如果我的應用程序未運行,AlarmManager是否可以工作

這裏是我在做什麼

Calendar calSet = Calendar.getInstance(); 
    calSet.set(Calendar.HOUR_OF_DAY, selectedhour); 
    calSet.set(Calendar.MINUTE, selectedminute); 
    calSet.set(Calendar.YEAR, year); 
    calSet.set(Calendar.MONTH, monthOfYear); 
    calSet.set(Calendar.DATE, dayOfMonth); 
    alarm = new Intent(ActivityA.this, Service.class); 
    pendingIntent = PendingIntent.getService(getApplicationContext(), i++,alarm, 1); 
    alarmanager.set(AlarmManager.RTC_WAKEUP, calSet.getTimeInMillis(),pendingIntent); 
+1

據我所知,'AlarmManager'將剛剛火警報您的應用程序是否在運行與否。這個問題應該更像是,如果你的應用程序處理了觸發的警報或不... –

+0

選中此項:http://stackoverflow.com/questions/14041208/how-to-reset-alarm-if-app-is -force-closed-in-android和http://stackoverflow.com/questions/7597358/android-alarmmanager-did-not-work-after-process-stops –

回答

1

是,如果手機重新啓動,你會失去你已經註冊的任何AlarmManager意圖。爲了解決這個問題,你應該爲BOOT_COMPLETED創建一個廣播接收器。在您的接收器的onRecieve()事件中,您需要重新註冊以前註冊的任何警報。

但是,如果您的進程只是被殺死,並且手機沒有重新啓動,那麼您的鬧鐘應該仍然會啓動。

這可能會幫助您:http://developer.android.com/training/scheduling/alarms.html#boot

相關問題