1.偶然发现项目因为一场崩溃后,自动重启到上一界面。因为未知原因,重启后fragment显示有误,需要杀死进程后才能正常适应app。悲剧的是,因为马上就重启进程

了,导致LOG中看不到异常原因。非常不好调试。

2.经过查资料得知,这些都是google的一种策略,当app崩溃后,会自动根据栈里面的activity的顺序,重启栈顶activity。

3.有的手机保留了这个功能,有的手机估计是定制的原因,会屏蔽掉这个功能,导致以前我没有注意这个现象。

4.避免无故重启带来的bug,让app崩溃后自动关闭。

1)、首先在在application 自定义异常处理类。

   // 以下用来捕获程序崩溃异常Thread.setDefaultUncaughtExceptionHandler(restartHandler); // 程序崩溃时触发线程registerActivityListener();//activity管理类

2)、在自定义的处理类中关闭栈中的activity,然后杀死当前app进程。此处result 是崩溃异常的信息。

public Thread.UncaughtExceptionHandler restartHandler = new Thread.UncaughtExceptionHandler() {@Overridepublic void uncaughtException(Thread thread, Throwable ex) {//下面为调试用的代码,发布时可注释Writer info = new StringWriter();PrintWriter printWriter = new PrintWriter(info);ex.printStackTrace(printWriter);Throwable cause = ex.getCause();while (cause != null) {cause.printStackTrace(printWriter);cause = cause.getCause();}printWriter.flush();printWriter.close();String result = info.toString();Log.i("sss",result);for (int i=0;i<activities.size();i++){Log.i("sss",activities.get(i).getLocalClassName());if (activities.get(i)!=null)activities.get(i).finish();}android.os.Process.killProcess(android.os.Process.myPid());}};

3)、activty管理,一般方法是在activity的基类中,在oncreate中 把activity添加到list数组中,再在ondestry中删除remove这个activity。

此处采用atcivity生命回调监听方法,在android14版本以上有效。

private void registerActivityListener() {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {@Overridepublic void onActivityCreated(Activity activity, Bundle savedInstanceState) {/***  监听到 Activity创建事件 将该 Activity 加入list*/activities.add(activity);}@Overridepublic void onActivityStarted(Activity activity) {}@Overridepublic void onActivityResumed(Activity activity) {}@Overridepublic void onActivityPaused(Activity activity) {}@Overridepublic void onActivityStopped(Activity activity) {}@Overridepublic void onActivitySaveInstanceState(Activity activity, Bundle outState) {}@Overridepublic void onActivityDestroyed(Activity activity) {if (null==activities&&activities.isEmpty()){return;}if (activities.contains(activity)){/***  监听到 Activity销毁事件 将该Activity 从list中移除*/activities.remove(activity);}}});}}

每个activity,从创建到销毁都会回调这个方法,可以避免有的activity不继承基类等。

android app崩溃后自动重启相关推荐

  1. android 程序崩溃后自动重启,Android 应用Crash 后自动重启的方法小结

    前提 首先,我们肯定要在Application里面注册一个CrashHandler,监听应用crash public class TestApplication extends MultiDexApp ...

  2. android 程序崩溃后自动重启,【Android】App应用崩溃(Crash/Force Close)之后如何让它自动重启?...

    英文原文: Auto Restart application after Crash/Force Close in Android. 手机上的Android应用,经常会出现"Force Cl ...

  3. app崩溃后自动重启

    android 引用:http://blog.csdn.net/caiwenfeng_for_23/article/details/41184353 package com.tan.abnormalr ...

  4. android 应用自动重启,Android 应用崩溃后自动重启的方法

    public class HKApplication extends Application { private List activityList = new ArrayList(); @Overr ...

  5. app闪退后重启_Android app 如何实现崩溃后自动重启

    Android app  如何实现崩溃后自动重启 由于有很多场景需要让自己的app一直保持运行状态,比如客户的launcher,或者定制app. 都希望在自己的app崩溃之后还可以自重启. 对于这样子 ...

  6. 华为手机崩溃后自动重启

    一.华为.vivo手机的App崩溃后,会特定情况下会自动重启App. 特定情况: 1.如果Activity1---->Activity2,在Activity2崩溃,则,重新走Applicatio ...

  7. Android 应用Crash 后自动重启

    前提 首先,我们肯定要在Application里面注册一个CrashHandler,监听应用crash public class TestApplication extends MultiDexApp ...

  8. Explorer.exe崩溃后自动重启任务栏托盘区图标丢失

    相信很多Windows用户都碰到过这种情况:运行某个程序时出现意外错误,导致外壳程序Explorer.exe崩溃而发生重启(即Explorer.exe被关闭后重新运行),任务栏也在消失后重新生成,但应 ...

  9. android 应用自动重启,Android:如何在“强制关闭”后自动重启应用程序?

    Android:如何在"强制关闭"后自动重启应用程序? 在Android应用程序中,如果我们没有得到正确的例外,我们通常会收到"强制关闭"错误. 如果强行关闭, ...

最新文章

  1. Centos7搭建k8s环境教程,一次性成功,收藏了!
  2. java 图片不更新,图片下传页面不能及时更新,求解
  3. 读博笔记(浏览器兼容性测试工具)
  4. ant 走马灯面板指示显示不出来_触摸屏报警信息显示设置方法
  5. 表单设置默认值_你还不知道表单怎么设计吗?看这里!
  6. 一些php+mysql的开源网上商城
  7. CCNA 学习笔记(七)--交换知识(VLAN VTP TRUNK)
  8. uniapp 压缩图片(微信小程序)
  9. 关于如何实现一个至简的麻将模拟程序的思考
  10. ArcEngine符号化——文本符号
  11. 解读常见传感器的CFA排列(彩色滤色矩阵,Color Filter Array)
  12. 对比excel与python 的分列处理方式
  13. linux系统盘ssd,Linux系统下如何使用SSD固态硬盘
  14. 四大盈利互联网经营理念
  15. 【Python网络爬虫】基本原理
  16. anaconda的详细配置安装
  17. Python3 如何处理 emoji 表情
  18. Kettle 将文本文件转为excel输出
  19. SEO没有效果,你是否浅尝辄止了?
  20. 高通WLAN框架学习(11)-- 低功耗接口和Wi-Fi定位系统

热门文章

  1. 9.26~9.27小结
  2. 绩效培训薪酬管理绿色植物风格PPT模板
  3. 数组转对象,对象转数组
  4. gatk BQSR中gtak BaseRecalibrator 出现基因组染色体号与SNP数据染色体号对应不上错误
  5. 大学计算机一级信息技术,大学计算机信息技术一级试题(新)
  6. java int 64 转换_Java中数据类型及其之间的转换
  7. 神策数据唐予轩:一文看懂效果广告渠道追踪能力搭建与分析
  8. win7不在同一个网段怎么共享打印机
  9. 2D: 传统目标检测算法综述
  10. 云呐|固定资产管理信息系统的作用有哪些?