多线程—IntentService

1 说说IntentService的背景

没错,IntentService的背景就是Service。它继承了Service,在此基础上升级了功能,那就是IntentService会启动新的线程处理任务,它内部通过HandlerThread和Handler实现异步操作。

2 IntentService特征总结

  • 创建单独的worker线程,onHandleIntent()方法处理Intent请求,创建IntentService时,只需实现onHandleIntent和构造方法,onHandleIntent为异步方法,可用于执行耗时任务;
  • 请求处理完成,IntentService自动结束,无需手动停止;
  • 为Service的onBind()方法提供默认实现,其返回为null,创建IntentService时,无需重写该方法;
  • 为Service的onStartCommand()方法提供默认实现,该实现会将Intent请求添加到队列中,创建IntentService时,无需重写该方法。

3 IntentService 使用

IntentService的使用三步走,首先创建TaskService继承IntentService;然后重新onHandleIntent方法,实现业务逻辑;最后使用startService方法启动TaskService。具体代码如下:

// 1. 继承
public class TaskService extends IntentService {
    @Override
    protected void onHandleIntent(@Nullable Intent intent) {
        // 2.实现业务逻辑
    }
}
// 3.开启服务
startService(new Intent(this, TaskService));

4 举个栗子

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容