java程序崩溃怎么重启_android 异常崩溃后 重启app(进程守护方式实现)
【实例简介】
【实例截图】
【核心代码】
package com.sunfusheng.daemon.sample;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Looper;
import android.util.Log;
import com.blankj.utilcode.util.AppUtils;
import com.sunfusheng.daemon.AbsHeartBeatService;
/**
* @author sunfusheng on 2018/8/3.
*/
public class HeartBeatService extends AbsHeartBeatService {
private static final String TAG = "---> HeartBeatService";
private static final android.os.Handler mainThreadHandler = new android.os.Handler(Looper.getMainLooper());
@Override
public void onStartService() {
Log.d(TAG, "onStartService()");
}
@Override
public void onStopService() {
Log.e(TAG, "onStopService()");
}
@Override
public long getDelayExecutedMillis() {
return 0;
}
@Override
public long getHeartBeatMillis() {
return 30 * 1000;
}
@Override
public void onHeartBeat() {
String packetName=AppUtils.getAppPackageName();
Log.d(TAG, "onHeartBeat()" packetName);
if(!AppUtils.isAppRunning(packetName)){
//方案一
AppUtils.relaunchApp();
//方案二
// Intent sayHelloIntent=new Intent(this,MainActivity.class);
// sayHelloIntent.setAction(Intent.ACTION_VIEW);
// sayHelloIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
// sayHelloIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
// getApplicationContext().startActivity(sayHelloIntent);
//
//方案三
// Intent intent = new Intent("android.intent.action.MAIN");
// intent.setComponent(new ComponentName(getApplicationContext().getPackageName(), MainActivity.class.getName()));
// intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// getApplicationContext().startActivity(intent);
Log.d(TAG, packetName " launchApp Sucess!!!!!!");
}else{
Log.d(TAG, packetName " is running");
if(!AppUtils.isAppForeground()){
Intent sayHelloIntent=new Intent(this,MainActivity.class);
sayHelloIntent.setAction(Intent.ACTION_VIEW);
sayHelloIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
sayHelloIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
getApplicationContext().startActivity(sayHelloIntent);
Log.d(TAG, packetName " is FLAG_ACTIVITY_SINGLE_TOP!!!");
}
}
}
}
java程序崩溃怎么重启_android 异常崩溃后 重启app(进程守护方式实现)相关推荐
- 如何让程序异常退出后重启
标 题:如何让程序异常退出后重启 发信人:蔡子楠 出处:http://www.freeeim.com/ 时 间:2008-02-14 11:25:22 "程序 FreeEIM.exe 遇到问 ...
- 软件调试系列:软件崩溃篇之内存异常崩溃
导致崩溃的情况很多,同样崩溃的表现也是千差万别,既然如此,那么还是让我们先来看一下这个崩溃是如何用Windbg分析的吧. 某年某月某日,测试人员报告说,Sample.exe软件崩溃了,两名开发人员小崔 ...
- java实现手机开关机_Android实现关机与重启的几种方式(推荐)
下面我们来探究Android如何实现关机,重启:在Android中这种操作往往需要管理员级别,或者root Android实现的方式如下几种: 默认的SDK并没有提供应用开发者直接的Android系统 ...
- 外包3年,吃透这三份Java程序员必刷的算法宝典后,已从13K涨到25K
懂点算法,很有必要 "不学数据结构和算法,一辈子都是码畜".不管你是 Java 程序员.算法工程师.数据分析师,还是技术管理者.架构师...... 我们都有一个共同的目标,就是在技 ...
- 经验分享!java程序员面试十多家公司后的经验心得
最近换了个公司,从三月底开始面,面到四月底,面了有快二十家公司.我是一个喜欢总结经验的人,每经过一场面试,我在回来的路上都会仔细回想今天哪些问题可以答的更好,或者哪些问题是自己之前没遇到过的,或者是哪 ...
- Java程序员两次美团面试失败后,含泪整理自己的面试经历
说起来,职场上很多事情,只能用一个"缘分"来解释.近日在职场论坛上看到有员工发帖,他说自己在面试时遇到了一件最悲哀的事情?在上个月去美团面试的时候,由于发挥不太好,面试挂了.当时那 ...
- 关于微信小程序用户头像昵称获取规则调整后的头像昵称获取方式
一.背景 小程序用户头像昵称获取规则调整公告:小程序用户头像昵称获取规则调整公告 | 微信开放社区 二.案例 1.点击登录按钮 点击登录按钮,先去检查用户授权信息,会弹出用户授权弹窗(首次),用户点击 ...
- cdr安装成功后出现重启计算机,CDR安装后重启电脑就打不开是什么原因?
满意答案 wlinz 2019.05.22 采纳率:59% 等级:12 已帮助:14862人 U盘打不开的原因主要分为U盘问题与电脑问题,大家遇到U盘打不开,可使用排除法.首先我们确认U盘上次是 ...
- 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)
黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...
最新文章
- php 内容自动生成word文档,php生成word文档的例子
- ObservableCollection和List的区别总结
- python3邮件_python3使用SMTP发送HTML格式邮件
- [html] websocket可以携带cookie吗?为什么?如果可以,怎样做到呢?
- C语言编程 简单展开扫雷游戏
- 关于Android4.4的图片路径获取,如果回来的Uri的格式有两种
- 面向程序员的GPGPU技术系列(1) 为什么要理解GPU体系结构?
- Windows XP快速关机
- 理解 Linux 条件变量
- 恒丰银行微服务架构优化实践
- java中的implements如何打开_Java 中extends与implements使用方法
- Java代码页面显示报表_Web报表开发中使用快逸报表分页标签:显示第几页和共几页...
- 博弈论 第五章 重复博弈
- oracle迁移价格,oracle 迁移的一般方法
- [渝粤教育] 江苏医药职业学院 急救护理 参考 资料
- java微信昵称处理_Java微信开发昵称表情符过滤
- kubernetes 的 liveness和readiness
- 上传截断_文件上传路径截断实例
- 微信支付-App支付服务端详解
- SQL学习五、计算字段