Java 从ExceptionHandler子类安全退出应用程序?

Java 从ExceptionHandler子类安全退出应用程序?,java,android,exception-handling,uncaughtexceptionhandler,system.exit,Java,Android,Exception Handling,Uncaughtexceptionhandler,System.exit,我对Android和java都是新手,我会尽我所能做到尽可能具体 我有一个应用程序,它有一个活动、几个片段和类以及一个实现默认UncaughtExceptionHandler的ExceptionHandler子类。我能够成功地使用:- Thread.setDefaultUncaughtExceptionHandler(新的ExceptionHandler(this)) 在出现未处理的异常时退出应用程序,而不显示“ForceClose”弹出窗口。我使用系统。退出(0)。我正在整个应用程序中记录日志

我对Android和java都是新手,我会尽我所能做到尽可能具体

我有一个应用程序,它有一个活动、几个片段和类以及一个实现默认
UncaughtExceptionHandler
ExceptionHandler
子类。我能够成功地使用:-

Thread.setDefaultUncaughtExceptionHandler(新的ExceptionHandler(this))

在出现未处理的异常时退出应用程序,而不显示
“ForceClose”
弹出窗口。我使用
系统。退出(0)
。我正在整个应用程序中记录日志。我能够将ExceptionHandler子类中的异常记录到日志中

现在,我的问题是,在出现未捕获异常的情况下,应用程序退出时不会经历
onPause()
onStop()
onDestroy()
,但我需要它通过我的
MainActivity
的所有生命周期


使用
ExceptionHandler
子类退出应用程序时如何执行此操作?

我最终得到了它,如果在启动的第一个活动(MainActivity)中抛出错误,则无法执行任何操作

如果它被抛出到任何其他活动中,那么在
ExceptionHandler
类中,我们可以传递启动MainActivity的意图,然后退出应用程序。优雅地:P

public类ExceptionHandler实现UncaughtExceptionHandler{

private Activity myContext;
public ExceptionHandler(Activity context) {
    this.myContext = context;
}
@Override
public void uncaughtException(Thread thread, Throwable ex) {
    // TODO Auto-generated method stub
    StringWriter stackTrace = new StringWriter();
    ex.printStackTrace(new PrintWriter(stackTrace));
    String report = stackTrace.toString();

    if(myContext instanceof MainActivity){

        System.gc();
        android.os.Process.killProcess(android.os.Process.myPid());

    }else{

        Intent intent = new Intent(myContext, MainActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent.putExtra("EXIT", true);
        myContext.startActivity(intent);
        System.gc();
        android.os.Process.killProcess(android.os.Process.myPid());

    }
}
}