【实例简介】

【实例截图】

【核心代码】

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(进程守护方式实现)相关推荐

  1. 如何让程序异常退出后重启

    标 题:如何让程序异常退出后重启 发信人:蔡子楠 出处:http://www.freeeim.com/ 时 间:2008-02-14 11:25:22 "程序 FreeEIM.exe 遇到问 ...

  2. 软件调试系列:软件崩溃篇之内存异常崩溃

    导致崩溃的情况很多,同样崩溃的表现也是千差万别,既然如此,那么还是让我们先来看一下这个崩溃是如何用Windbg分析的吧. 某年某月某日,测试人员报告说,Sample.exe软件崩溃了,两名开发人员小崔 ...

  3. java实现手机开关机_Android实现关机与重启的几种方式(推荐)

    下面我们来探究Android如何实现关机,重启:在Android中这种操作往往需要管理员级别,或者root Android实现的方式如下几种: 默认的SDK并没有提供应用开发者直接的Android系统 ...

  4. 外包3年,吃透这三份Java程序员必刷的算法宝典后,已从13K涨到25K

    懂点算法,很有必要 "不学数据结构和算法,一辈子都是码畜".不管你是 Java 程序员.算法工程师.数据分析师,还是技术管理者.架构师...... 我们都有一个共同的目标,就是在技 ...

  5. 经验分享!java程序员面试十多家公司后的经验心得

    最近换了个公司,从三月底开始面,面到四月底,面了有快二十家公司.我是一个喜欢总结经验的人,每经过一场面试,我在回来的路上都会仔细回想今天哪些问题可以答的更好,或者哪些问题是自己之前没遇到过的,或者是哪 ...

  6. Java程序员两次美团面试失败后,含泪整理自己的面试经历

    说起来,职场上很多事情,只能用一个"缘分"来解释.近日在职场论坛上看到有员工发帖,他说自己在面试时遇到了一件最悲哀的事情?在上个月去美团面试的时候,由于发挥不太好,面试挂了.当时那 ...

  7. 关于微信小程序用户头像昵称获取规则调整后的头像昵称获取方式

    一.背景 小程序用户头像昵称获取规则调整公告:小程序用户头像昵称获取规则调整公告 | 微信开放社区 二.案例 1.点击登录按钮 点击登录按钮,先去检查用户授权信息,会弹出用户授权弹窗(首次),用户点击 ...

  8. cdr安装成功后出现重启计算机,CDR安装后重启电脑就打不开是什么原因?

    满意答案 wlinz 2019.05.22 采纳率:59%    等级:12 已帮助:14862人 U盘打不开的原因主要分为U盘问题与电脑问题,大家遇到U盘打不开,可使用排除法.首先我们确认U盘上次是 ...

  9. 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)

    黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...

最新文章

  1. php 内容自动生成word文档,php生成word文档的例子
  2. ObservableCollection和List的区别总结
  3. python3邮件_python3使用SMTP发送HTML格式邮件
  4. [html] websocket可以携带cookie吗?为什么?如果可以,怎样做到呢?
  5. C语言编程 简单展开扫雷游戏
  6. 关于Android4.4的图片路径获取,如果回来的Uri的格式有两种
  7. 面向程序员的GPGPU技术系列(1) 为什么要理解GPU体系结构?
  8. Windows XP快速关机
  9. 理解 Linux 条件变量
  10. 恒丰银行微服务架构优化实践
  11. java中的implements如何打开_Java 中extends与implements使用方法
  12. Java代码页面显示报表_Web报表开发中使用快逸报表分页标签:显示第几页和共几页...
  13. 博弈论 第五章 重复博弈
  14. oracle迁移价格,oracle 迁移的一般方法
  15. [渝粤教育] 江苏医药职业学院 急救护理 参考 资料
  16. java微信昵称处理_Java微信开发昵称表情符过滤
  17. kubernetes 的 liveness和readiness
  18. 上传截断_文件上传路径截断实例
  19. 微信支付-App支付服务端详解
  20. SQL学习五、计算字段

热门文章

  1. 快速安装puppeteer (跳过安装Chromium)
  2. WindowsLinux常用命令笔记
  3. 程序猿果真有前端后端client吗
  4. 实验三 类的继承和多态性
  5. hdu-5834 Magic boy Bi Luo with his excited tree(树形dp)
  6. 泛型(CSDN转载)
  7. 在需要时开启Perl新特性
  8. CISSP的成长之路(二十一):用户持有凭证
  9. php ci model条件查询,Laravel关系模型指定条件查询方法
  10. 12面魔方公式图解法_三阶魔方入门