2011-03-26 120 views

回答

5

首先,你的應用程序不應該崩潰。如果發生崩潰,通常是由於未捕獲的異常(通常爲NullPointerException)。找出拋出異常的地方並修復它。

至於你的問題,具體來說,你也可以捕捉這些例外,並防止應用程序崩潰。例如,這將防止NullPointerException異常崩潰的應用程序:

try { 
    Object nullObj = null; 
    if (nullObj.toString().equals("bleh")) { 
     // app should crash from the NullPointerException if uncaught 
    } 
} catch (NullPointerException e) { 
    // Catch the NullPointerException and prevent crashing 
    e.printStackTrace(); 
} 

在這種情況下,應用程序不會崩潰,並繼續顯示應用程序。現在不要重新啓動應用程序,也許應該跳回到之前的活動並讓用戶知道出了什麼問題。

+0

+1其全部關於預測和正確反應失敗。 – 2011-03-26 17:17:16

0

我明白你的困境。在發佈之前捕獲所有異常將變得困難。如果發生崩潰,您可以使用ACRA來捕獲異常 - 這將避免強行關閉。它也有重新啓動應用程序的機制,我相信。