IntentService源码分析
来源:互联网 发布:淘宝怎么刷流量安全 编辑:程序博客网 时间:2024/06/05 22:37
IntentService源码分析
public abstract class IntentService extends Service { private volatile Looper mServiceLooper; private volatile ServiceHandler mServiceHandler; private String mName; private boolean mRedelivery; /*这个ServiceHandler是一个handler,在下面的oncreate方法中和一个异步thread关联*/ private final class ServiceHandler extends Handler { public ServiceHandler(Looper looper) { super(looper); } @Override public void handleMessage(Message msg) { /*onHandleIntent里面所有代码都在异步线程执行*/ onHandleIntent((Intent)msg.obj); //处理完毕,stop自己 stopSelf(msg.arg1); } } /*创建时候赋值HandlerThread的名字*/ public IntentService(String name) { super(); mName = name; } @Override /*在onCreate方法中,HandlerThread被创建并和mServiceHandler进行关联*/ public void onCreate() { super.onCreate(); HandlerThread thread = new HandlerThread("IntentService[" + mName + "]"); thread.start(); mServiceLooper = thread.getLooper(); mServiceHandler = new ServiceHandler(mServiceLooper); } @Override public void onStart(@Nullable Intent intent, int startId) { Message msg = mServiceHandler.obtainMessage(); msg.arg1 = startId; msg.obj = intent; mServiceHandler.sendMessage(msg); } @Override public int onStartCommand(@Nullable Intent intent, int flags, int startId) { onStart(intent, startId); return mRedelivery ? START_REDELIVER_INTENT : START_NOT_STICKY; } /*处理完毕,停止looper*/ @Override public void onDestroy() { mServiceLooper.quit(); } @WorkerThread /*这个方法代码区里面可以直接编写耗时代码,因为是在一个异步线程的handler的回调中*/ protected abstract void onHandleIntent(@Nullable Intent intent);}
0 0
- IntentService源码分析
- IntentService源码分析
- IntentService源码分析
- IntentService源码分析
- IntentService源码分析
- IntentService源码分析
- 从源码分析IntentService
- IntentService源码分析
- IntentService源码分析
- IntentService 源码分析
- IntentService 源码分析
- intentservice源码分析
- android-----IntentService源码分析
- IntentService的源码分析
- IntentService源码分析
- IntentService源码分析
- IntentService源码分析
- IntentService源码分析
- JavaSE基础
- 块坐标下降法(Block Coodinate Descent)
- MD5 不可返回的加密算法
- Mac 清理垃圾工具 Clean My Mac破解版
- HDU 5880 Family View 好容易MLE的AC自动机 *
- IntentService源码分析
- Mybatis多表关联映射
- org.xml.sax.SAXParseException; lineNumber: 71; columnNumber: 54; 元素内容必须由格式正确的字符数据或标记组成。
- 【WebGL】WebGL入门
- 样式,动态加载
- 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路
- what's the different between forward proxy and reverse proxy?
- Framework中的AIDL(原)
- lightoj 1018 一个比较重要的状态转移的剪枝技巧....DFS+状压dp