Android中创建杀不死的APP进程(5.0以下)
所谓的杀不死指的时进程被杀掉后,会自动重启。
即便时在设置里面强行停止后,也能够自动重启。
那么如何自动重启呢?目前想到的有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以下)相关推荐
- 如何在android中创建自定义对话框?
本文翻译自:How to create a Custom Dialog box in android? I want to create a custom dialog box like below ...
- android sqlite 创建空表,sqlite3在android中创建表错误(sqlite3 create table error in android)...
sqlite3在android中创建表错误(sqlite3 create table error in android) 我试图在android中使用sqlite3创建表我的开放助手是这样的: pub ...
- android 不能安装app,android中两个不同名称的app不能同时安装
---恢复内容开始--- 两个app,第一个安装后,再安装第二个,会提示安装包损坏或者一切其他问题,但是这个安装包在别的手机可以正常安装,可以是因为以下问题 两个app中,包含有相同名称的provid ...
- Android中创建和响应选项菜单
计应112班 谭娇娇 这个是一个创建菜单和响应选项的一个实例同时也Android同样支持子菜单,你可以通过addSubMenu(int groupId, int itemId, int order, ...
- Android中创建Surface和TYPE_WALLPAPER类型的window
文章目录 创建surface 创建Wallpaper类型的window 如何编译代码 上面这两个技术的出发点:因为Android中同一时刻只能运行单个WallpaperService,一个Wallpa ...
- android 实现定时通知,在Android中创建定时通知(例如,针对事件)
对于某些Android应用程序,我想集成以下功能: 用户可以定义他想要被提醒的时间.当时间到了,应用程序应该在通知栏中创建通知,即使此时用户没有使用该应用程序. 为此,需要查看AlarmManager ...
- Android中创建自己的对话框
Activities提供了一种方便管理的创建.保存.回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog( ...
- android中添加分页小表情,百度APP表情面板体验升级——小面板大文章
原标题:百度APP表情面板体验升级--小面板大文章 导语:表情面板是百度APP互动场景中非常重要的基础输入体验功能:本文以三个核心设计环节为例,分享在不同设计阶段,对表情面板体验细节的理解和感悟,阐述 ...
- Android之通过ContentProvider实现两个app(进程间)间通信以及函数调用
1.ContentProvider简单介绍 ContentProvider以在不同的应用程序之间共享数据,ContentProvider底层实现是Binder,它为存储和获取数据提供统一的接口 2.实 ...
最新文章
- “东湖”的艄公--漫步绍兴(四)
- 北斗导航 | PPP-RTK技术研究进展与试验验证(第十一届中国卫星导航年会报告)
- Class 创建性能大比拼(反射,泛型反射,泛型创建,缓存Emit,非缓存Emit)
- 关于Session的使用和优化
- SOLID原则(转载)
- Openlayer:学习笔记之解析地图组成
- git 总是要求输入密码的问题
- 割裂的前端工程师--- 2017年前端生态窥探
- centos7 mysql5.6.35_Centos7.2.1511 编译安装Mysql5.6.35
- python金融风控评分卡模型和数据分析(加强版)
- OpenCV基础教程大全
- 像素值与灰度值的区别与关系
- html5禁用右侧滚轮条,鼠标滚轮终于不乱跳了,自己动手更换鼠标滚轮编码器 雷柏7100=================...
- 办理芯片银行卡时记得把“闪付”功能取消
- 让电脑无法使用QQ或微信
- 服务器系统关机了怎么办,各种服务器系统的关机
- linux 万能五笔安装
- 新版火狐 拖 功能_Firefox 33的新功能
- 高性能低功耗服务器cpu,六核仅35W:AMD披露超低功耗服务器CPU
- 比特大陆内部究竟发生了什么?