IntentService跟一般Service的区别在于封装了异步。
使用方法:
一.创建一个类,让它继承IntentService,创建一个空构造方法和重写onHandleIntent方法。
public class MyIntentService extends IntentService {
/**
* Creates an IntentService. Invoked by your subclass's constructor.
*
* @param name Used to name the worker thread, important only for debugging.
*/
public MyIntentService() {
super("MyIntentService");
}
@Override
protected void onHandleIntent(Intent intent) {
}
}
注意构造方法里传到父类的参数,是类名,注意是空构造,使用Android studio或eclipse默认生成的事带参数的,要修改一下。
然后生命周期是 构造方法–》onCreate–》onStartCommand–》onHandleIntent–》onDestroy
在onStartCommand里注意要返回默认的,也就是super .什么的,因为要执行父类的一些东西才能调用到onHandleIntent,看IntentService这个类你就知道怎么回事 了。
在onHandleIntent方法里执行的代码就是子线程的了,
IntentService默认只会有一个子线程,任务执行完服务会自动停止,
如果还有事情没做完你又启动服务的话,会从onStartCommand方法开始执行,如果事情做完了,服务也就停止了,那么再启动服务就是从构造函数开始执行了。