AsyncQueryHandler异步处理框架
来源:互联网 发布:肉身不腐 知乎 编辑:程序博客网 时间:2024/05/21 20:34
AsyncQueryHandler封装了调用者线程与工作线程的交互过程。交互的主体是两个Handler,一个运行在调用者线程中,一个运行在工作者线程中。通过提供onXXXComplete的回调接口,实现事件的完成处理。
public abstract class AsyncQueryHandler extends Handler {
protected class WorkerHandler extends Handler {
@Override
public void handleMessage(Message msg) {
// 运行在工作者线程中
WorkerArgs args = (WorkerArgs) msg.obj;
// 向调用者传回信息
Message reply = args.handler.obtainMessage(token);
}
}
public AsyncQueryHandler(ContentResolver cr) {
synchronized (AsyncQueryHandler.class) {
// 启动工作者线程
if (sLooper == null) {
HandlerThread thread = new HandlerThread("AsyncQueryWorker");
thread.start();
sLooper = thread.getLooper();
}
}
// 与工作者线程绑定的Hanlder
mWorkerThreadHandler = createHandler(sLooper);
}
public void startQuery(...) {
Message msg = mWorkerThreadHandler.obtainMessage(token);
WorkerArgs args = new WorkerArgs();
// 保存调用者Handler对象,以便回调
args.handler = this;
msg.obj = args;
// 向工作者线程发出处理请求
mWorkerThreadHandler.sendMessage(msg);
}
// 被子类重写的事件完成回调接口
protected void onDeleteComplete(int token, Object cookie, int result) {
}
@Override
public void handleMessage(Message msg) {
// 运行在调用者线程
switch (event) {
case EVENT_ARG_QUERY:
onQueryComplete(token, args.cookie, (Cursor) args.result);
break;
}
}
}
流程:startQuery->WorkerHandler::handleMessage->AsyncQueryHandler::handleMessage->onDeleteComplete
- AsyncQueryHandler异步处理框架
- AsyncQueryHandler异步处理框架
- AsyncQueryHandler 异步查询框架
- Android异步查询框架AsyncQueryHandler
- Android 异步查询框架AsyncQueryHandler的使用
- Android 异步查询框架AsyncQueryHandler的使用
- Android 异步查询框架AsyncQueryHandler的使用
- Android 异步查询框架AsyncQueryHandler的使用
- Android 异步查询框架AsyncQueryHandler的使用
- Android 异步查询框架AsyncQueryHandler的使用
- Android 异步查询框架AsyncQueryHandler的使用
- Android 异步查询框架AsyncQueryHandler的使用
- Android 异步查询框架AsyncQueryHandler分析
- Android 异步查询 AsyncQueryHandler
- AsyncQueryHandler 异步查询数据
- Android 异步开发之 AsyncQueryHandler
- Android AsyncQueryHandler(异步查询机制)
- 数据库的异步查询-----AsyncQueryHandler
- POSIX线程:API .
- Unity3d时钟脚本
- MySQL Error 1130 Host 'localhost' is not allowed to connect to this MySQL server
- 让android支持RTSP(live555分析)
- 多线程二 多线程中的隐蔽问题揭秘
- AsyncQueryHandler异步处理框架
- chkdsk
- Unity3D AI人工智能(坦克模型自动寻怪,自动追击)
- 将指定内容写到指定文件中
- android Notification 的使用
- 编译frameworks
- Given an array of characters which form a sentence of words, give an efficient algorithm to reverse
- web.xml中context-param,listener,filter,servlet加载顺序
- nyoj 236 心急的C小加