相比于service,IntentService属于轻量级,可自动停止,无需主动销毁,对于一次性任务还是比较方便的选择。
需要关注的点:onHandleIntent(Intent intent),顾名思义,就是接收我们传出来的Intent并根据其指令完成我们要做的任务,这个方法是我们要用来干活的
下面看实例:
[代码]java代码:
?
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | public class OurIntentService extends IntentService {
String TAG = OurIntentService .class.getSampleName();
public static final String ACTION = "our_action";
public OurIntentService () {
super("OurIntentService ");
}
@Override
public void onCreate() {
super.onCreate();
Log.d(TAG, " 创建服务");
create();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(TAG, " 开启服务");
return super.onStartCommand(intent, flags, startId);
}
public void onDestroy() {
super.onDestroy();
removeCallbackAndMessage();
Log.d(TAG, " 服务销毁");
}
@Override
protected void onHandleIntent(Intent intent) {
Log.d(TAG, " 服务开始");
if (intent != null) {
Log.d(TAG, "intent.getAction() = " + intent.getAction());
if (ACTION.equals(intent.getAction())) {
// 开启线程执行耗时任务或执行小于20s的操作
}
}
Log.d(TAG, " 服务结束");
}
}
|
除onHandleIntent方法外,create及destory等生命周期方法需要我们注意一下,原则上属于创建及资源销毁等方面的工作应该放到这俩方法内完成,让我们要做的任务及资源伴随整个生命周期
原文链接:http://www.apkbus.com/blog-35555-68602.html