所谓的杀不死指的时进程被杀掉后,会自动重启。

即便时在设置里面强行停止后,也能够自动重启。

那么如何自动重启呢?目前想到的有3种方式:

1.使用AlarmManager来定时发intent启动

2.Native层重写对SIGKILL/SIGTERM信号的处理

3.Native层fork一个子进程,来监听APP所在的进程是否有被kill掉

对于第1种方式,java的,就不举列了。

对于第2种测试不太好用,SIGKILL不能被捕获,只是看到某些推送里面是用这种方式,有点奇怪...

 sigaction(SIGTERM, &handler, &oldHandle);sigaction(SIGKILL, &handle, &oldHandle);

对于第3中,和预期一样,即便被强制停止后也能被重启,核心就是fork一个子进程,在检测到父进程被kill后叫起.....

核心代码:

 while(1==1){int ppid_error = kill(ppid,0);if(ppid_error < 0){system("am start  --user 0  -n com.example.testndk2/com.example.testndk2.MainActivity");exit(0);return;}sleep(2);}

Android中创建杀不死的APP进程(5.0以下)相关推荐

  1. 如何在android中创建自定义对话框?

    本文翻译自:How to create a Custom Dialog box in android? I want to create a custom dialog box like below ...

  2. android sqlite 创建空表,sqlite3在android中创建表错误(sqlite3 create table error in android)...

    sqlite3在android中创建表错误(sqlite3 create table error in android) 我试图在android中使用sqlite3创建表我的开放助手是这样的: pub ...

  3. android 不能安装app,android中两个不同名称的app不能同时安装

    ---恢复内容开始--- 两个app,第一个安装后,再安装第二个,会提示安装包损坏或者一切其他问题,但是这个安装包在别的手机可以正常安装,可以是因为以下问题 两个app中,包含有相同名称的provid ...

  4. Android中创建和响应选项菜单

    计应112班 谭娇娇 这个是一个创建菜单和响应选项的一个实例同时也Android同样支持子菜单,你可以通过addSubMenu(int groupId, int itemId, int order, ...

  5. Android中创建Surface和TYPE_WALLPAPER类型的window

    文章目录 创建surface 创建Wallpaper类型的window 如何编译代码 上面这两个技术的出发点:因为Android中同一时刻只能运行单个WallpaperService,一个Wallpa ...

  6. android 实现定时通知,在Android中创建定时通知(例如,针对事件)

    对于某些Android应用程序,我想集成以下功能: 用户可以定义他想要被提醒的时间.当时间到了,应用程序应该在通知栏中创建通知,即使此时用户没有使用该应用程序. 为此,需要查看AlarmManager ...

  7. Android中创建自己的对话框

    Activities提供了一种方便管理的创建.保存.回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog( ...

  8. android中添加分页小表情,百度APP表情面板体验升级——小面板大文章

    原标题:百度APP表情面板体验升级--小面板大文章 导语:表情面板是百度APP互动场景中非常重要的基础输入体验功能:本文以三个核心设计环节为例,分享在不同设计阶段,对表情面板体验细节的理解和感悟,阐述 ...

  9. Android之通过ContentProvider实现两个app(进程间)间通信以及函数调用

    1.ContentProvider简单介绍 ContentProvider以在不同的应用程序之间共享数据,ContentProvider底层实现是Binder,它为存储和获取数据提供统一的接口 2.实 ...

最新文章

  1. “东湖”的艄公--漫步绍兴(四)
  2. 北斗导航 | PPP-RTK技术研究进展与试验验证(第十一届中国卫星导航年会报告)
  3. Class 创建性能大比拼(反射,泛型反射,泛型创建,缓存Emit,非缓存Emit)
  4. 关于Session的使用和优化
  5. SOLID原则(转载)
  6. Openlayer:学习笔记之解析地图组成
  7. git 总是要求输入密码的问题
  8. 割裂的前端工程师--- 2017年前端生态窥探
  9. centos7 mysql5.6.35_Centos7.2.1511 编译安装Mysql5.6.35
  10. python金融风控评分卡模型和数据分析(加强版)
  11. OpenCV基础教程大全
  12. 像素值与灰度值的区别与关系
  13. html5禁用右侧滚轮条,鼠标滚轮终于不乱跳了,自己动手更换鼠标滚轮编码器 雷柏7100=================...
  14. 办理芯片银行卡时记得把“闪付”功能取消
  15. 让电脑无法使用QQ或微信
  16. 服务器系统关机了怎么办,各种服务器系统的关机
  17. linux 万能五笔安装
  18. 新版火狐 拖 功能_Firefox 33的新功能
  19. 高性能低功耗服务器cpu,六核仅35W:AMD披露超低功耗服务器CPU
  20. 比特大陆内部究竟发生了什么?

热门文章

  1. for jq 嵌套_嵌套jquery函数
  2. 如何对CentOS防火墙进行配置
  3. 一个比 Nginx 功能更强大的 Web 服务器
  4. 西蒙菲莎大学计算机研究性硕士,聊一聊西蒙菲莎大学!那些你不知道的秘密?...
  5. 单元测试框架:go convey
  6. Zigbee变电站智能门禁系统设计
  7. 第127届广交会闭幕,建立线上贸易新机制
  8. Qt之如何获取主窗口的指针
  9. U站批量采集/u站批量上传/淘宝忧站自动采集
  10. matlab 检验数组内部的异常值,2019-04-01 3σ准则异常值检测及相关方法