我相信這是力量關閉的預期行爲。用戶在得到異常信息時會得到通知,當他們確認系統試圖使其回到儘可能接近其當前狀態時,即最後一次有效的活動時。
我不知道爲什麼這種行爲不會被期望,但是您可能需要想出自己的方法來認識到由於崩潰而重新啓動活動並立即退出onCreate。
編輯: 我只是把一個測試程序:
public class Activity1 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.button);
button.setText("test");
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Activity1.this, Activity2.class);
startActivityForResult(intent, 0);
}
});
}
}
public class Activity2 extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.button);
button.setText("test2");
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
throw new RuntimeException();
}
});
}
}
當你推的Test2按鈕,拋出異常。 Android顯示一個強制關閉對話框,當您在對話框中單擊確定時,它會將您帶回到測試。這就是我的默認行爲。
處理此問題的最佳方法是修復您的應用程序,使其永不拋出異常。
作爲最後的手段,您可以添加處理未捕獲異常的處理程序:uncaughtExceptionHandler。這可以防止強制關閉對話框顯示在第一位,所以你可以隨心所欲。
Thanks Marya ...這不是Android應用程序的默認行爲。如果您嘗試任何示例應用程序併發生崩潰,應用程序將退出。我試圖在另一個簡單的應用程序中模擬案例,它「完全」崩潰。我正在尋找可能導致應用重新啓動的指針。 – bschandramohan 2010-12-17 19:47:43
關於「爲什麼」,當活動重新啓動時,應用程序處於不良狀態,並且我不想在此時處理代碼中用於所有活動的無效狀態。關閉應用程序並允許acra/marketplace爲我報告異常似乎更好。 – bschandramohan 2010-12-17 19:48:58
請參閱編輯....... – 2010-12-17 20:07:14