2011-10-11 119 views
0

我手動啓動一個安卓服務,它可以完成一些數據收集工作。如何重新啓動Android服務,當它被重啓中斷?

假設如果重啓導致中斷,則服務在那裏結束。我需要在重啓時重新啓動相同的服務。

注意:我沒有啓動啓動服務。 在此先感謝。

+0

要啓動該服務的設備啓動時? –

+0

你想要一些一次性註冊啓動事件嗎?就像Windows一樣,註冊表項「RunOnce」就是爲了這個目的。 –

+0

不,我手動啓動服務,我需要重新啓動服務,如果有像重新啓動中斷,我想停止服務,我只是殺了服務..我需要監視電話事件只有特定的時間,並且不應該有任何inturreption – RanjitRock

回答

3

您可以在引導中斷後重新啓動服務。

只存儲共享pref中的標誌,如果引導中斷,則boolean設置爲true。

現在啓動完成後,您可以使用以下代碼重新啓動服務。

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 

public class MyStartupIntentReceiver extends BroadcastReceiver{ 
@Override 
public void onReceive(Context context, Intent intent) { 
// check for interreupted flag in shared pref 
// if true restart your service 
} 
} 

添加下面的代碼片段到你的清單

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

乾杯....

+0

感謝Android_Crazy – RanjitRock