前言
简单记录一下JobIntentService的使用,后面高版本又废弃了,推荐使用AndroidJetpack了。
虽然废弃了,但还是记录一下(之前没记录)。
水文一篇,哈哈,大佬们可以跳过。
正文
Android 8.0对系统资源的管控更加严格,添加了后台限制规则。
如果满足以下任意条件,应用将被视为处于前台:
具有可见 Activity(不管该 Activity 已启动还是已暂停)。
具有前台服务。
另一个前台应用已关联到该应用(不管是通过绑定到其中一个服务,还是通过使用其中一个内容提供程序)。 例如,如果另一个应用绑定到该应用的服务,那么该应用处于前台。
IME
壁纸服务
通知侦听器
语音或文本服务
如果以上条件均不满足,应用将被视为处于后台。
系统不允许后台应用创建后台服务。 因此,Android 8.0 引入了一种全新的方法,即 Context.startForegroundService(),以在前台启动新服务。
在系统创建服务后应用有五秒的时间来调用该服务的 startForeground() 方法以显示新服务的用户可见通知。
XJobService.java
public class XJobService extends JobIntentService { private static final String TAG = "XJobService_"; private static final int JOB_ID = -300; @Override protected void onHandleWork(@NonNull Intent intent) { //这里处理intent } public static void enqueueWork(Context context, Intent intent) { enqueueWork(context, XJobService.class, JOB_ID, intent); } }
AndroidManifest.xml
<service android:name=".XJobService" android:exported="true" android:permission="android.permission.BIND_JOB_SERVICE" />
调用方式
XJobService.enqueueWork(this, new Intent(new ComponentName(this, XJobService.class)));
参考文章
《
© 版权声明