2012-06-05 188 views
7

我試圖在Android中使用Thread.UncaughtExceptionHandler發生崩潰時重新啓動應用程序。我可以重新啓動與當前活動堆棧的應用程序作爲一個新的過程?如果是,我該怎麼辦?Android重新啓動應用程序

回答

1

一種方法是覆蓋活動中的onPause方法以殺死應用程序。就像這樣:

public class MyActivity extends Activity { 
    @Override 
    public void onPause() { 
     finish(); 
    } 
+0

上面的代碼完成相應的活動儀式?我用下面的代碼來殺死進程android.os.Process.killProcess(android.os.Process.myPid()); – PgmFreek

+0

啊,所以你試圖殺死進程並在進程死後立即重啓應用程序? –

+0

是的...在殺死進程後,我用報警管理器啓動應用程序...但我的問題是我可以啓動與以前的進程的活動堆棧的應用程序? – PgmFreek

0

據我知道,一旦你殺了你的過程中,垃圾收集器將運行,屬於您的應用程序,消耗的內存將得到釋放所有對象,這是所有對象都會有空值。因此,使用以前進程的活動堆棧跟蹤啓動應用程序是不可能的。

+0

我可以在殺死它之前獲得當前進程的活動堆棧嗎? – PgmFreek

+1

請參閱此鏈接,它可能會幫助您:http://stackoverflow.com/questions/10043246/retrieving-the-navigation-history-for-the-current-running-application – Shrikant