2012-03-27 28 views
0

我在我的應用程序中有一個錯誤狀態,所以當用戶沒有啓用互聯網查看xml通知他應該先連接。問題是,當他啓用互聯網並嘗試連接時,他可能會接近一個力量。我不知道這是爲什麼,但我認爲,如果在我的錯誤狀態屏幕中添加代碼來消除退出活動將幫助我解決這個問題。我的問題很簡單。我需要他們兩個嗎?或者只有他們?添加其他東西?安卓克林一個活動可能會阻止我強制關閉

@Override 
     protected void onStop() { 
      super.onStop(); 
      // The activity is no longer visible (it is now "stopped") 
finish(); 
      System.exit(0); 
     } 
    @Override 
     protected void onDestroy() { 
      super.onDestroy(); 
      // The activity is about to be destroyed. 
finish(); 
      System.exit(0); 

     } 

我的應用程序的流程是這樣的:用戶輸入應用程序,檢查是否在線。如果是的話,進入主屏幕,一切都按照計劃進行。如果現在轉到錯誤狀態。所以,如果調用,錯誤狀態將是第一個運行的活動(啓動之後)。

編輯:我只是想通知用戶沒有連接,所以請再試一次,並因此殺死所有正在運行的活動(這是唯一一個實際上就好像它運行它將是第一個)。所以下次他進入這個應用程序時,從一開始就不要從那個時候開始,而應該從早期開始。

回答

0

這取決於。 OnStop和OnDestroy有兩個不同的用途。你應該圍繞着它是什麼都可以與一個try/catch錯誤,以避免FC

@pseudo代碼 嘗試: 建立連接 抓住 對話框,提醒沒有連接 super.finish()

+0

你能更具體,有可能一個例子嗎?你什麼意思?我只是想通知用戶沒有連接,所以請再試一次,因爲這樣會殺死所有正在運行的活動(實際上這是唯一的一個,就好像運行它一樣)。所以下次他進入這個應用程序時,從一開始就不要從那個時候開始,而應該從早期開始。 – 2012-03-28 00:02:37

0

切勿使用

System.exit(0); 

我們的主要活動啓動完畢後,再檢查連接。如果有連接,一切都很好。如果沒有,則彈出一個叫做finish()onClick的AlertDialog。

+0

爲什麼不使用它?如果我只留下完成()會是一個問題? – 2012-03-29 00:05:13

+0

如果你想成爲一流的android應用程序開發人員遵循android活動生命週期的指導方針。你可以在這裏閱讀更多http://stackoverflow.com/questions/2033914/quitting-an-application-is-that-frowned-upon – 2012-03-29 03:29:17

0

沒有網絡連接時,在完成主要活動時是否有任何問題?並且當主要活動完成時,重新啓動後它將從頭開始。

以及參照這個線程:

How to close Android application?