2011-12-22 50 views
5

我想在應用程序崩潰時自動重啓我的服務。我的想法是:當apk崩潰時自動重啓服務

1: 一個BroadcastReceiver當APK死機和自動重新啓動該服務

if("android.intent.action.SOMETHING".equals(intent.getAction())) 
    { 
    Intent serviceLauncher = new Intent(context, Service.class); 
    context.startService(serviceLauncher); 
    } 

2: 與uncaughtException(),但我不知道來處理

回答

5

我想你只需要在onStartCommand服務的返回START_STICKY()

+0

我會盡可能快地嘗試這個,並給你一個報告 – 2012-03-26 06:10:23

+0

我剛剛閱讀了http://developer.android.com/reference/android/app/Service.html#START_STICKY上的描述,我認爲這是我的需要,謝謝 – 2012-03-26 06:13:10

+0

我認爲START_STICKY只確保服務啓動,但服務運行時,它不會重新啓動後他chrash,可能嗎? – 2012-04-20 14:21:40

0

待辦事項你想讓你的服務真正重啓還是希望你的服務能夠繼續? 我認爲服務不會在應用程序崩潰時停止,服務與創建它的應用程序是分開的。

+0

嗯,也許我的描述是有點不對,我想,當它下降到重新啓動該服務。 – 2011-12-22 15:00:25

+0

我認爲唯一的解決方案是隔離你的應用程序可能崩潰的地方(應用程序的崩潰不會引發一個動作)並使用try-catch。 – VinceFR 2011-12-22 15:05:54

0

您可以使用 setUncaughtExceptionHandler

當接收到該事件中,你可以重新啓動該服務,

另一種選擇,可能工作(你需要嘗試吧),是上的OnDestroy方法調用startService。

相關問題