2011-11-18 37 views
0

我被一些東西卡住了,我猜測它非常微不足道。 在未來某時某刻基本上我調度報警:鬧鐘在android中不起作用?

Intent contentIntent = new Intent(this, AlarmReceiver.class); 
PendingIntent theappIntent = PendingIntent.getService(Main.this, 0,contentIntent, 0); 
Calendar calendar = Calendar.getInstance(); 
calendar.set(year, month, day, hour,minute); 
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); 
am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), theappIntent); 
而移動是不斷地對

工作正常。 我的問題是移動重新啓動後,觸發報警 ,並在預期時間內打開。 有什麼我錯過了嗎?我應該做一些額外的工作,以在重新啓動後保持安排報警 ?

回答

3

設備啓動時必須重置鬧鐘。 你缺少檢測應用程序時,設備引導和重置以下alarm..so時寫的代碼清單中

<receiver android:name=".YourReceiver"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      </intent-filter> 
</receiver> 

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

同時創建一個BroadcastReceiver收取開機完成意向

public class YourReceiver extends BroadcastReceiver { 


Context ct; 

@Override 
public void onReceive(Context context, Intent intent) 
{ 
    ct=context; 
    if(intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) 
    { 
     // Reset your alarm here 
     Intent contentIntent = new Intent(ct, AlarmReceiver.class); 
     PendingIntent theappIntent = PendingIntent.getService(ct, 0,contentIntent, 0); 
     Calendar calendar = Calendar.getInstance(); 
     calendar.set(year, month, day, hour,minute); 
     AlarmManager am = (AlarmManager) ct.getSystemService(ALARM_SERVICE); 
     am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), theappIntent); 
    } 
} 
+0

我使用警報服務。沒關係。 @maneesh – sachi

+0

Itz ok ..只需在您的項目文件中添加一個廣播接收器。它會正常工作 – Hardik4560

+0

@sachi你可以輕鬆地與廣播接收機做到這一點,爲什麼要使用服務? –

0

您應該添加一個接收器用於監聽android.intent.action.BOOT_COMPLETED並從那裏啓動您的鬧鐘。