写在前头
保活Service我们需要做什么:
1.在应用被关闭后保活(最难)
2.在内用占用过大,系统自动释放内存时保活(优先杀死占用较高的Service)
3.重启手机后自动开启Service
4.手机息屏后不被释放内存
5.手动清理内存时保活
首先介绍一下Service的等级:
一、前台进程
二、可见进程
三、服务进程
四、后台进程
五、空进程 ---关闭应用后,没有清理缓存
所以为了提高优先级我们可以使用startForeground()方法将Service设置为前台进程。
一、在AndroidManifest中添加Service
<service android:name=".modle.StepService"
android:process="istep.service" //放入新进程
>
<intent-filter android:priority="1000">
<!-- 系统启动完成后会调用-->
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.DATE_CHANGED"/>
<action android:name="android.intent.action.MEDIA_MOUNTED" />
<action android:name="android.intent.action.USER_PRESENT" />
<action android:name="android.intent.action.ACTION_TIME_TICK" />
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
</intent-filter>
</service>
<service android:name=".modle.GuardService"
android:process=":GuardService">
<intent-filter >
<!-- 系统启动完成后会调用-->
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.DATE_CHANGED"/>
<action android:name="android.intent.action.MEDIA_MOUNTED" />
<action android:name="android.intent.action.USER_PRESENT" />
<action android:name="android.intent.action.ACTION_TIME_TICK" />
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" /&