先说下为什么要有这个功能
主流的Android版本 如果不人为通过Thread.setDefaultUncaughtExceptionHandler干预异常,系统会关闭当前线程并使用新线程重启应用,而应用并不是从LauncherActivity启动的,而是回退栈中抛出异常的Activity的下面的Activity,比如从MainActivity启动了DiscountActivity,在DiscountActivity抛出了异常,系统会调用MainActivity的onCreate.(这是我通过现象分析的,没有任何根据)
我的项目是个管理类的app,并且没有使用token的方式存储用户信息,一切网络请求通过cookie判断用户是否登录
在系统抛出异常开启新线程后 网络请求不会携带旧线程的cookie,导致返回到MainActivity时的一切网络请求都是非法的,因此只有进入到MainActivity前面打的LoginActivity重新登录才能重新得到cookie从而解决问题.
所以用到了这个功能:android遇到异常自动重启 一切重头再来