Android进程保活(如何尽可能避免APP被杀死)
让一个Service变成前台Service:
Android9.0以后启动前台服务需要权限: <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
1.创建一个通知Notification
2.调用Service的API弹出通知: startForeground(通知ID, Notification);可以调用stopForeground(boolean)将Service设置回后台Service,里面boolean参数控制是否同时移除通知。startForeground()弹出的通知,只有当Service变回后台服务,或者Service被杀死,才能移除,否则点击无法移除。
/**
* 忽略电池优化辅助类
* APP加入手机忽略电池优化白名单,可以让APP拥有更强生命力,有效降低APP被系统杀死的优先级
* 需要权限:
* <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
*/
public class IgnoreBatteryOptimizationUtils {/*** app是否已经在手机忽略电池优化白名单中* @param context* @return*/public static boolean isIgnoringBatteryOptimizations(Context context) {if(context == null){return false;}boolean isIgnoring = false;PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);if (powerManager != null) {isIgnoring = powerManager.isIgnoringBatteryOptimizations(context.getPackageName());}return isIgnoring;}/*** 申请加入手机忽略电池优化白名单,会跳转到相关设置页Activity* 可以用startActivityForResult()来启动设置页,以便用户操作结束后,* 在onActivityResult()中根据是否已经加入白名单,来做相应提示。* @param activity*/public static void requestIgnoreBatteryOptimizations(Activity activity, int requestCode) {if(activity == null){return;}try {Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);intent.setData(Uri.parse("package:" + activity.getPackageName()));activity.startActivityForResult(intent, requestCode);} catch (Exception e) {e.printStackTrace();}}public static void requestIgnoreBatteryOptimizations(Context context) {if(context == null){return;}try {Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);intent.setData(Uri.parse("package:" + context.getPackageName()));context.startActivity(intent);} catch (Exception e) {e.printStackTrace();}}
(声明:部分图片获取自网络,这里只是用于学习分享,侵删!)
Android进程保活(如何尽可能避免APP被杀死)相关推荐
- Android进程保活(黑白手段让APP活下去)
凡是做过几年Android开发的,都不能不面对进程保活这一问题.特别是这两年,面对谷歌,国内定制ROM,安全软件等多方围剿的情况下,app在后台保活的难度越来越大,可以说包括QQ.微信在内的所有app ...
- 关于 Android 进程保活,你所需要知道的一切
早前,我在知乎上回答了这样一个问题:怎么让 Android 程序一直后台运行,像 QQ 一样不被杀死?.关于 Android 平台的进程保活这一块,想必是所有 Android 开发者瞩目的内容之一.你 ...
- Android进程保活方案
自己曾经也在这个问题上伤过脑经,前几日刚好有一个北京的哥们在QQ说在做IM类的项目,问我进程保活如何处理比较恰当,决定去总结一下,网上搜索一下进程常驻的方案好多好多,但是很多的方案都是不靠谱的或者不是 ...
- 【Android 进程保活】应用进程拉活 ( 双进程守护 + JobScheduler 保活 | 成功率最高 | 推荐使用 )
文章目录 一. 双进程守护保活 + JobScheduler 原理 二. 双进程守护保活 + JobScheduler 源码 1.JobService 代码 2.判定服务运行工具类 3.清单文件 4. ...
- 【Android 进程保活】应用进程拉活 ( 账户同步拉活 | 账号添加 | 源码资源 )
文章目录 一. 账号添加 二. 代码示例 1. 账号添加工具类 2. 权限注册 3. 在 Activity 中调用上述工具类 4. 运行效果 三. 源码资源 一. 账号添加 在上一篇博客 [Andro ...
- 【Android 进程保活】提升进程优先级 ( 使用前台 Service 提高应用进程优先级 | 启动相同 id 的第二个前台 Service 关闭通知 )
文章目录 一. 前台 Service 通知问题 二. 设置 startForeground id 参数为 0 三. 启动相同 id 的第二个前台 Service 关闭通知 1. 前台服务 1 2. 关 ...
- 【Android 进程保活】提升进程优先级 ( 使用前台 Service 提高应用进程优先级 | 效果展示 | 源码资源 )
文章目录 一. 使用前台 Service 提高应用进程优先级 1. 前台 Service 代码 2. 前台 Service 代码 3. 启动服务 二.效果展示 三.源码资源 一. 使用前台 Servi ...
- Android 进程保活手段分析
如何进行进程保活,首先我们应该先分析一下进程被杀死的原因开始 Android进程被杀死的场景分析: 从 Android 的进程被杀死的场景分析,查看被杀死的原因 一.Android手机的进程回收策略 ...
- Android 系统(265)----Android进程保活全攻略(上)
Android进程保活全攻略(上) 对于每个公司的APP来说,当然都希望自己APP的进程尽量的不被杀死,于是乎,就有了一些列进程保活的方法出现,网上也有很多关于这类的文章,但网上很多资料往往只告诉了思 ...
最新文章
- 解析Linux操作系统文件目录
- 18.图像用户界面入门:EasyGui
- 学习 WCF (5)--学习Binding的使用
- c#写数据到Excel慢
- 空投坐标怎么看6_嗦粉不咯?桂林米粉店将分三四五星级,你怎么看? 旅行 6 月 4 日热点速递...
- Android4.4 Input 输入上层分析
- steam加速_Steam玩家们快看看,追梦加速器的试用体验者怎么说?
- android编程:调节视频画面分辨率,Android实现任意分辨率视频编码的思考与实现
- html更改超链接下划线颜色,超链接去掉下划线_WORD中不取消超链接,只改超链接的颜色和去掉下划线...
- html制作手机预览效果,webstorm实现手机预览页面
- 中考考试的指令广播_考试时间指令(铃声).doc
- UnityShader学习——非真实感渲染
- 【docker系列】docker API管理接口增加CA安全认证
- SOEM 源码解析 ecx_LRD
- [bzoj4094]Optimal Milking
- 【Promise】自定义 - 手写Promise - Promise.all - Promise(executor)
- 程序人生--2003年(21)
- 【MySQL】java编程器宣传费湖南岚鸿驱动
- 恭喜叶总完成从前端码农到技术负责人的蜕变……
- BindingException: Mapper method ‘com.itheima.dao.BookDao.update‘ has an un unsupported return