Android初级第八讲之应用如何保活
来源:互联网 发布:python 月份加减 编辑:程序博客网 时间:2024/05/01 23:22
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处!
一般情况下应用保活的场景在于:后台要不断定位描述一条清晰轨迹、IM通信需要及时收到消息提醒等。
所谓保活就是避免被应用杀死,前台应用自然不用说,主要是后台应用。我们知道Android的应用优先级是-16到15,系统进程一般拥有-16到-1的优先级,而普通应用只拥有0-15的优先级;级别越小优先级越高。
首先进入后台的应用不能是流氓进程,比如频率的定位、发送网络请求、不允许屏幕关闭等;如果做心跳,需要选择合适的周期比如2分钟一次,进行socket长连;可以设计一个前台进程一个后台进程,互相监测重启对方;保持至少有1像素位于前台。
其次如果强制保活,那么90%的可能会杀死进程;4.4以前可以用AlarmManager的setRepeating方法可定时保活,之后可以使用setAndAllWhileIdle方法在保持在一段时间内集体唤醒;
再者可以通过注册通知,比如开机启动、时间变动、锁屏解屏、网络开关、收到短信、打入电话等;7.0以后可以使用JobSchedule的Api进行轮循操作,通过主动注册网络切换广播来监听(配置文件注册方式已被禁止)
如果是Service还可以通过startForeGround的方式来让服务处于前台,避免杀死,关闭时使用stopForeGround来去掉。另外在重写onStartCommand,返回START_STICKY,使service被杀死后自动重启
public int onStartCommand(Intent intent, int flags, int startId) { return START_STICKY; }
还有通过WakeLock,需要申请到权限
获取锁:
释放锁 如果是Root手机,可以设置应用的persistent标签为true。终归这样的方式很流氓,就像张小龙对微信的期许一下:希望它是个人们有需要用一下,用完就放开的工具。
给Activity设置如下标签,当用户点击最近任务时,App不会显示在内,达到隐藏的目的
android:excludeFromRecents="true"
附斑马行车对用户权限的要求(主要设置白名单)
恭喜你,看到最后发现新天地!无论如何,在保活的时候要考虑下用户的感受,理性保活!
其他如启动1像素的activity,Native进程保活,通知拉起保存Service、监听第三方和系统的公开广播
Android进程保活招数大全
- Android初级第八讲之应用如何保活
- Android初级开发第八讲--之startActivityForResult方法讲解
- 如何让我们的Android应用进程保活?
- Android初级开发第八讲--ListView学习以及特性介绍
- android应用保活机制
- Android 应用保活笔记
- android应用保活1
- Android初级第九讲之适配
- Android之service保活
- 应用保活套路
- Android学习笔记之初级应用
- [Android初级]BroadReceiver之自启动应用
- android初级学习之应用目录结构
- Android应用保活分析
- 第八讲、jmeter之集合点
- Android 6.0+ (api 23+)应用保活方案研究
- Android组件保活,service保活
- Android进程保活
- Java中int和Integer关系是比较微妙的
- spring启动时自动加载方法
- 冒泡排序插入排序基数排序考试代码
- 数据恢复:在Linux上恢复删除了的文件
- Fragment的管理者
- Android初级第八讲之应用如何保活
- 数据结构上机测试1:顺序表的应用
- Java中根据模板导出数据到word的解决方案
- 2014年汕头市选拔赛普级组 数数
- python套利系列之价差分析--python学习笔记22
- VMwareWorkstation 12安装Windows7x64时报错:units specified don't exist SHSUCDX should can't install 解决
- <context:component-scan>使用说明
- Nginx代理TCP请求模块添加及配置步骤
- Lintcode 反转整数