2012-04-02 59 views
-2

我開發了一個應用程序,它使用了一些外部的開源項目。現在我已經確定沒有應用程序會強制關閉的地方。不過,我不想冒險考慮外部的開源應用程序。我想確保如果我的應用程序部隊關閉,我從一開始就重新啓動應用程序。android-重啓應用程序強行關閉

我通過網絡搜索解決方案,我能找到的最好的是here。但我真的不明白如何實現它...

我見過很多應用程序打開第一個屏幕強制關閉,所以你能給我一些幫助嗎?

回答

0

我假設你的意思是服務。如果你有一個永遠在場的應用程序,我會恨你。但對於一項服務,只需從START_STICKY標誌開始。

public MyAmazingService extends Service { 
    @Override public int onStartCommand(Intent intent, int arg1, int arg2) { 
     // Doing some amazing stuff 
     return START_STICKY; 
    } 
} 
+0

我猜他只是想保住自己的活動活着的時候,它是由一個異常關閉...你說得對,如果裏面有一個bug他第一個活動,這可能會導致「無限循環」 – 2012-04-02 15:17:46

+0

@RafaelT這將是一個比我更好的假設。好,先生。 – AedonEtLIRA 2012-04-02 15:19:50

+0

沒有它的服務我是說話回合....在意外的力量關閉方面,我想關閉應用程序並重新啓動它。 – Vivekanand 2012-04-02 15:55:13

2

您發佈的鏈接是做它的方式。如果您尚未添加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); 
     } 
    }); 
} 
+0

以及我想知道這是不是工作.. – Vivekanand 2012-04-02 16:04:08

+0

你確認Apllications.onCreate運行?把一個日誌裏面像我的更新的答案,並檢查它內部DDMS – 2012-04-02 16:07:15

+0

@vivek你真的把它放到應用程序類或活動?這在活動中不起作用。 – AedonEtLIRA 2012-04-02 16:07:48