前提

首先,我们肯定要在Application里面注册一个CrashHandler,监听应用crash

public class TestApplication extends MultiDexApplication {private static TestApplication mInstance;@Overridepublic void onCreate() {super.onCreate();Thread.setDefaultUncaughtExceptionHandler(new CrashHandler());}

然后在这个CrashHandler 想办法重启应用。有两种方法如下:

方法1.通过AlarmManager

      public class CrashHandler implements Thread.UncaughtExceptionHandler {@Overridepublic void uncaughtException(Thread t, Throwable e) {//重启app/*** 这种方式 功能是可以达成* 但是有问题就是如果说你的app挂了 这时候会显示系统桌面* 然后你的app有启动起来了* 给人的感觉不太好*/Intent intent = new Intent();Context context = TestApplication.getInstance();intent.setClass(context, MainActivity.class);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(intent);PendingIntent pendingIntent = PendingIntent.getActivity(context,0,intent,PendingIntent.FLAG_ONE_SHOT);AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);alarmManager.set(AlarmManager.RTC,System.currentTimeMillis() + 100,pendingIntent);Process.killProcess(Process.myPid());System.exit(0);}
}

方法2:

使用第三方库

    implementation 'com.jakewharton:process-phoenix:2.0.0'
public class CrashHandler implements Thread.UncaughtExceptionHandler {@Overridepublic void uncaughtException(Thread t, Throwable e) {ProcessPhoenix.triggerRebirth(TestApplication.getInstance());}
}

这个第三方库的原理是:
当app 崩溃的时候,ProcessPhoenix.triggerRebirth(TestApplication.getInstance());就会触发启动另外一个进程的Activity,然后把当前崩溃的进程结束掉。在新进程的Activity里面,把应用在自己的进程里面的启动起来。

Android 应用Crash 后自动重启相关推荐

  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. android app崩溃后自动重启

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

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

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

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

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

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

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

  7. Linux kernel Panic后自动重启机器的设置

    Linux kernel Panic后自动重启机器的设置 方法1:内核配置命令行加入这句,崩溃后3秒重启: panic=3 make menuconfig 设置kernel系统参数: 方法2: vi ...

  8. android自动创建桌面,Android应用启动后自动创建桌面快捷方式的实现方法

    Android的开发其实是比较灵活的,其实在安装了Android应用程序之后,会在桌面上自动创建快捷方式,接下来爱站技术频道小编将会介绍Android应用启动后自动创建桌面快捷方式的实现方法给大家,有 ...

  9. 计算机关机又自动重启,为什么w7电脑关机后自动重启_w7电脑关机后自动重启怎么解决...

    当我们完成任务之后总是需要关闭win7系统电脑的,这是一件很正常不过的事,可是有的用户发现自己的win7系统电脑关机后自动重启了,为什么会出现这种现象呢?又有什么方法能够解决呢?接下来小编就给大家讲讲 ...

最新文章

  1. 计算机网络 关于网速,关于电脑网速慢的说明
  2. 肝货,详解 tkinter 图形化界面制作流程!
  3. 莫烦老师的tensorflow降级方法
  4. linux虚拟终端快捷键
  5. Android studio 查找文件在电脑路径位置
  6. JavaScript入门(part11)--对象
  7. 掌握Python爬虫基础,仅需1小时!
  8. 华为服务器设置iBMC管理网口IP地址,开启Monitor图文教程
  9. 面试官:换人!赶快换人!连CopyOnWriteArrayList都没听过!确实没听过
  10. 微信小程序从入门到放弃(五)
  11. linux shell 加密shc,使用shc工具加密shell脚本详解
  12. 前端工作中遇到的问题总结(一)
  13. live2d_二次元 | live2d为你的网站博客增加萌萌哒的看板娘
  14. 【初探篇】申请阿里云免费SSL证书并配置https访问实战
  15. 在北京,有房有车的中年男女最好欺负
  16. 腾讯云、阿里云都“服”了,云容灾你还迟疑什么?
  17. java epson_无法与Epson POS打印机通信
  18. Lenet、Alexnet 、VGG、 GoogleNet、ResNet模型
  19. 科普贴:远程开户,有哪些离岸银行可以选?
  20. ​Au入门系列之三:调整音量

热门文章

  1. bigdicmal除法精度设置_Java BigDecimal浮点数运算--如何保证运算精度不溢出
  2. 简单的安卓app小程序代码_开发一款APP大概需要多少钱?
  3. C++知识点19——使用C++标准库(再谈string——string的初始化、赋值、添加、删除、访问)
  4. 记录一下Python-Qt中按钮点击事件无响应解决方案
  5. html禁止f12键代码,网站禁用f12 禁止调试代码方法
  6. 怎么查看jre版本_javac和java版本不一致问题
  7. vue 数据更新不及时_陈词懒调的《未来天王》正式完结,再也不用担心她更新不及时了!...
  8. hive创建mysql表,hiveMysql创建、修改、删除字段/表
  9. 到底该如何理解DevOps这个词
  10. 学习Key与Value的集合hashtable