我開發了一個應用程序,它使用了一些外部的開源項目。現在我已經確定沒有應用程序會強制關閉的地方。不過,我不想冒險考慮外部的開源應用程序。我想確保如果我的應用程序部隊關閉,我從一開始就重新啓動應用程序。android-重啓應用程序強行關閉
我通過網絡搜索解決方案,我能找到的最好的是here。但我真的不明白如何實現它...
我見過很多應用程序打開第一個屏幕強制關閉,所以你能給我一些幫助嗎?
我開發了一個應用程序,它使用了一些外部的開源項目。現在我已經確定沒有應用程序會強制關閉的地方。不過,我不想冒險考慮外部的開源應用程序。我想確保如果我的應用程序部隊關閉,我從一開始就重新啓動應用程序。android-重啓應用程序強行關閉
我通過網絡搜索解決方案,我能找到的最好的是here。但我真的不明白如何實現它...
我見過很多應用程序打開第一個屏幕強制關閉,所以你能給我一些幫助嗎?
我假設你的意思是服務。如果你有一個永遠在場的應用程序,我會恨你。但對於一項服務,只需從START_STICKY標誌開始。
例
public MyAmazingService extends Service {
@Override public int onStartCommand(Intent intent, int arg1, int arg2) {
// Doing some amazing stuff
return START_STICKY;
}
}
您發佈的鏈接是做它的方式。如果您尚未添加Android Application,最好的方法就是加入。註冊一個UncaughtExceptionHandler內您的應用程序onCreate
方法就像這樣:
//Inside your ApplicationClass
public void onCreate(){
Log.v("MyApplication", "onCreate triggered")
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler(){
public void uncaughtException(Thread thread, Throwable ex){
Log.v("MyApplication", "onUncaughtException triggered. Error:")
ex.printStackTrace()
//restart your app here like this
Intent i = new Intent(this, TheClassYouWannaStart.class);
getApplicationContext().startActivity(i);
}
});
}
以及我想知道這是不是工作.. – Vivekanand 2012-04-02 16:04:08
你確認Apllications.onCreate運行?把一個日誌裏面像我的更新的答案,並檢查它內部DDMS – 2012-04-02 16:07:15
@vivek你真的把它放到應用程序類或活動?這在活動中不起作用。 – AedonEtLIRA 2012-04-02 16:07:48
我猜他只是想保住自己的活動活着的時候,它是由一個異常關閉...你說得對,如果裏面有一個bug他第一個活動,這可能會導致「無限循環」 – 2012-04-02 15:17:46
@RafaelT這將是一個比我更好的假設。好,先生。 – AedonEtLIRA 2012-04-02 15:19:50
沒有它的服務我是說話回合....在意外的力量關閉方面,我想關閉應用程序並重新啓動它。 – Vivekanand 2012-04-02 15:55:13