我在一个活动的onCreate()
方法中实现了UncaughtExceptionHandler
。
在uncaughtException()
方法中,我试图打开另一个带有额外参数(错误消息和堆栈跟踪)的活动ErrorActivity
。该活动应该只显示(全局地)AlertDialog
并处理日志等。
有人能告诉我为什么ErrorActivity
没有打开,而oncoughtException
中的代码被执行了吗?我怀疑这个问题与Thread
有关。
这是我的第一个活动(在onCreate()
中模拟异常)
public class MainActivity extends Activity {
GlobalSettings settings;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Thread.currentThread().setUncaughtExceptionHandler(
new UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
Intent intent = new Intent(MainActivity.this,
ErrorActivity.class);
Bundle bundle = new Bundle();
bundle.putString("ERROR", ex.getMessage());
intent.putExtras(bundle);
startActivity(intent);
}
} );
settings = (GlobalSettings) getApplication();
settings = null;
settings.getApplicationContext();
setContentView(R.layout.main);
}
}
我第二个活动应该处理错误:
public class ErrorActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle = getIntent().getExtras();
String name = bundle.getString("ERROR");
ShowAlertDialog(name);
}
}