我正在使用此代码来处理任何可能导致我的应用程序崩溃的未捕获异常。
public class ExceptionHandler implements java.lang.Thread.UncaughtExceptionHandler {
private final Context myContext;
public ExceptionHandler(Context context) {
myContext = context;
}
public void uncaughtException(Thread thread, Throwable exception) {
Toast.makeText(myContext,
"The application has crashed, and a report is sent to the admin",
Toast.LENGTH_SHORT).show();
StringWriter stackTrace = new StringWriter();
exception.printStackTrace(new PrintWriter(stackTrace));
System.err.println(stackTrace);// You can use LogCat too
Intent intent = new Intent(myContext, CrashActivity.class);
myContext.startActivity(intent);
Process.killProcess(Process.myPid());
System.exit(10);
}
}
当我使用已知但未捕获的异常(只是为了测试)运行它时,会调用活动“CrashActivity”,但必须在它之前出现的 Toast 没有出现。
实际上我只想显示 Toast 然后调用 myContext.finish(); 而不是去 CrashActivity。但那吐司在不可见。
我哪里错了?