JobIntentService的使用

Android2024年4月22日 pm6:56发布3个月前更新 3XCN.COM站长
0 0 0
广告也精彩
目录

前言

简单记录一下JobIntentService的使用,后面高版本又废弃了,推荐使用Android Jetpack了。

虽然废弃了,但还是记录一下(之前没记录)。

水文一篇,哈哈,大佬们可以跳过。

正文

Android 8.0对系统资源的管控更加严格,添加了后台限制规则。

如果满足以下任意条件,应用将被视为处于前台:

  1. 具有可见 Activity(不管该 Activity 已启动还是已暂停)。

  2. 具有前台服务。

  3. 另一个前台应用已关联到该应用(不管是通过绑定到其中一个服务,还是通过使用其中一个内容提供程序)。 例如,如果另一个应用绑定到该应用的服务,那么该应用处于前台。

  4. IME

  5. 壁纸服务

  6. 通知侦听器

  7. 语音或文本服务

如果以上条件均不满足,应用将被视为处于后台。

系统不允许后台应用创建后台服务。 因此,Android 8.0 引入了一种全新的方法,即 Context.startForegroundService(),以在前台启动新服务。

在系统创建服务后应用有五秒的时间来调用该服务的 startForeground() 方法以显示新服务的用户可见通知。

如果应用在此时间限制内未调用 startForeground(),则系统将停止服务并声明此应用为 ANR。

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)));

参考文章

  1. JobIntentService详解及使用

 历史上的今天

版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站文章: 部分来源于网络,仅供站长学习和参考,若侵权请留言
广告也精彩

相关文章

广告也精彩

暂无评论

评论审核已启用。您的评论可能需要一段时间后才能被显示。

暂无评论...

网站升级中

公告

近期网站升级中,可能存在一些bug。欢迎反馈 https://www.91es.com/we.html

本站域名

本站域名 : 91es.com3xcn.com。本站邮箱 : 站长邮箱 i@oorr.cn,通知邮箱we@oorr.cn ,如有更新,请看公告 。