IntentService是继承Service的,那么它包含了Service的全部特性,当然也包含service的生命周期,那么与service不同的是,IntentService在执行onCreate操作的时候,内部开了一个线程,去你执行你的耗时操作。
Service中提供了一个方法:
- public int onStartCommand(Intent intent, int flags, int startId) {
- onStart(intent, startId);
- return mStartCompatibility ? START_STICKY_COMPATIBILITY : START_STICKY;
- }
同时IntentService中提供了这么一个方法:
- protected abstract void onHandleIntent(Intent intent);
这是一个抽象方法,也就是说具体的实现需要被延伸到子类。
子类的声明:
- public class ChargeService extends IntentService
IntentService是通过Handler looper message的方式实现了一个多线程的操作,同时耗时操作也可以被这个线程管理和执行,同时不会产生ANR的情况。