一、IntentService解析
(1)IntentService的特点
- IntentService自带一个工作线程,当我们的Service需要做一些可能会阻塞主线程的工作的时候可以考虑使用IntentService。
- IntentService通过在onCreate中创建HandlerThread线程、在onStartCommand发送消息到IntentService内部类ServiceHandler中,在handleMessage中调用onHandleIntent在子线程完成工作。
- 当我们通过startService多次启动IntentService会产生多个Message消息。由于IntentService只持有一个工作线程,所以每次onHandleIntent只能处理一个Message消息,IntentService不能并行的执行多个intent,只能一个一个的按照先后顺序完成,当所有消息完成的时候IntentService就销毁了,会执行onDestroy回调方法。
(2)IntentService实现类
public class DownLoadIntentService extends IntentService {
public DownLoadIntentService(String name) {
super(name);
}
//运行在主线程
@Override
public void onCreate() {
super.onCreate();
}
//运行在主线程
@Override
public int onStartCommand(@Nullable Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
//在子线程中执行
@Override
protected void onHandleIntent(@Nullable Intent intent) {
}
}
网友评论