2013-10-22 31 views
0

我想在系統啓動時運行重複報警。這是代碼:服務不運行在引導時重複報警

// Run the SendService once an hour 
@Override 
public void onReceive(Context context, Intent intent) { 
    //Logger.getInstance().writeLine(getClass().getName(), "Received boot, start SMS repeating alarm"); 
    Toast.makeText(context, "Starting SMS2Mail alarm on boot", Toast.LENGTH_LONG).show(); 
    Intent svcIntent = new Intent(context, MessageFileService.class); 
    svcIntent.setAction(MessageFileService.GET_INTENT); 
    sendSMSIntent = PendingIntent.getBroadcast(context, 0, svcIntent, 0); 
    alarmMgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, 
      AlarmManager.INTERVAL_FIFTEEN_MINUTES, 
      AlarmManager.INTERVAL_HOUR, sendSMSIntent); 
} 

該清單

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

<service 
     android:name="com.cio1.sms2mail.StartSendService" 
     android:enabled="true" 
     android:exported="true" > 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     </intent-filter> 
    </service> 

的AlarmManager不火可言,至於我的任何調試資源可以告訴我。另外,關於如何從啓動時恢復LogCat信息的任何線索都會有所幫助。 此外,這是否與提到的廣播接收機here的限制有關? 謝謝。

回答

0

的幾點思考

我看到你的清單service標籤。它不應該是一個receiver?在所有教程中,我看到BOOT_COMPLETE被接收器捕獲,然後啓動AlarmManager。

其次,要接收onboot intent應用程序,必須至少手動啓動一次。