Android

多线程—IntentService

2020-02-10  本文已影响0人  似焰如火

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 举个栗子

上一篇 下一篇

猜你喜欢

热点阅读