我相信这是力量关闭的预期行为。用户在得到异常信息时会得到通知,当他们确认系统试图使其回到尽可能接近其当前状态时,即最后一次有效的活动时。
我不知道为什么这种行为不会被期望,但是您可能需要想出自己的方法来认识到由于崩溃而重新启动活动并立即退出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