这篇文章主要介绍了机器人应用碰撞后自动重启的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
前提
首先,我们肯定要在应用里面注册一个崩溃处理者,监听应用碰撞
公共类测试应用扩展多应用程序{
私有静态测试应用程序实例;
@覆盖
public void onCreate() {
超级棒。oncreate();
线程。setdefaultuncaughtexceptionhandler(新崩溃处理程序());
}
然后在这个崩溃处理器想办法重启应用。有两种方法如下:
方法1.通过AlarmManager
公共类崩溃处理器实现线程UncaughtExceptionHandler {
@覆盖
public void uncutchexception(Thread t,Throwable e) {
//重启应用
/**
* 这种方式功能是可以达成
* 但是有问题就是如果说你的应用挂了这时候会显示系统桌面
* 然后你的应用有启动起来了
* 给人的感觉不太好
*/
Intent Intent=new Intent();
上下文上下文=测试应用程序。getinstance();
intent.setClass(上下文,主活动。类);
intent.addFlags(Intent .标志_活动_新_任务);
context.startActivity(意图);
待定意向PendingIntent=待定意向。获取活动(上下文,0,意图,待定意图.FLAG _ ONE _ SHOT);
报警管理器报警管理器=(报警管理器)上下文。getsystem服务(上下文.报警_服务);
alarmManager.set(AlarmManager .RTC,System.currentTimeMillis() 100,待定内容);
过程。kill process(进程。mypid());
系统。退出(0);
}
}
方法2:
使用第三方库
实现com。jakewharton:process-phoenix:2。0 .0 '
公共类崩溃处理器实现线程UncaughtExceptionHandler {
@覆盖
public void uncutchexception(Thread t,Throwable e) {
凤凰工艺。触发重复(测试应用程序。getinstance());
}
}
这个第三方库的原理是:
当应用崩溃的时候、工艺凤凰。触发重复(测试应用程序。getinstance());就会触发启动另外一个进程的活动,然后把当前崩溃的进程结束掉。在新进程的活动里面,把应用在自己的进程里面的启动起来。
总结
到此这篇关于机器人应用碰撞后自动重启的文章就介绍到这了,更多相关机器人自动重启内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。