2012-12-07 42 views
0

我有一個關於在an​​droid系統服務兩種通知幾個問題:如何在設備重新啓動時取消服務?

  1. 如何取消該服務,如果我選擇了重新啓動我的設備?

  2. 如果我關閉設備並重新上電,如何使服務保持運行?

+1

起初http://www.whathaveyoutried.com/第二你寫的服務?如果不是,請繼續[android.SE]。 – rekire

回答

1

您只需調用清單文件中的bootcompiled來重新創建服務即可。

請參見下面的代碼:

<!-- To receive the Alarm Notification --> 

    <receiver android:name=".RecreateTwoMonthAlarm" >   
     <intent-filter>    
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      <category android:name="android.intent.category.HOME" />   
     </intent-filter>  
    </receiver> 

現在,如果你不想重新創建服務時,該設備得到重新啓動,然後簡單的定義清單中的接收器沒有任何BOOT_COMPLETED行動。

如像下面的代碼:

<receiver android:name=".AlarmReceiverNotificationForTwoMonth" /> 

這是在我的情況接收機。如果你想要同樣的服務,那麼你也可以做到。

希望它能幫助你。

+0

謝謝,但如果我的服務是在我的應用程序清單中定義的呢?我的意思是: \t 沒有任何接收器?我應該添加這個標籤嗎? – ohadinho

+0

是的。只需簡單地使用服務更改接收方,並更改服務正在呼叫時調用的相應意向名稱。 –

0

1)如果我選擇重新啓動設備,如何取消服務? 如果沒有BOOT_COMLETED接收器,則無事可做。

2)如果我關閉設備並重新上電,如何保持服務正常運行? 您應該創建一個接收器類:

public class StartupReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     context.startService(new Intent(context,YourService.class)); 
    } 
} 

而且在清單文件中聲明:

<receiver android:name=".StartupReceiver" > 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     <category android:name="android.intent.category.HOME" /> 
    </intent-filter> 

相關問題