查看“︁HandlerThread”︁的源代码
←
HandlerThread
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于这些用户组的用户执行:*、
用户
您可以查看和复制此页面的源代码。
这个类可以创建一个包含有Looper的Thread,而后则可将其中的Looper对象用来作为参数创建Handler,如此则可在一个独立的thread中处理其他进程添加的消息,实现异步处理。 *ps, 此类已经完美处理了线程间的同步问题,从而确保了在创建Handler时looper已经创建,是有效的 使用示例: <pre class="prettyprint"> public CarouselViewHelper(Context context) { ... mHandlerThread = new HandlerThread(TAG + ".handler"); mHandlerThread.start(); mAsyncHandler = new AsyncHandler(mHandlerThread.getLooper()); ... } class AsyncHandler extends Handler { AsyncHandler(Looper looper) { super(looper); } @Override public void handleMessage(Message msg) { int id = msg.arg1; if (id >= mCarouselView.getCardCount()) { Log.e(TAG, "Index out of range for get, card:" + id); return; } if (msg.what < REQUEST_TEXTURE_N || msg.what > REQUEST_END) { Log.e(TAG, "Unknown message: " + id); return; } if (msg.what < REQUEST_DETAIL_TEXTURE_N) { // REQUEST_TEXTURE_N final Bitmap bitmap = getTexture(id); if (bitmap != null) { mSyncHandler.obtainMessage(SET_TEXTURE_N, id, 0, bitmap).sendToTarget(); } TextureParameters params = getTextureParameters(id); if (params != null) { mSyncHandler.obtainMessage(SET_MATRIX_N, id, 0, params.matrix.getArray()).sendToTarget(); } } else if (msg.what < REQUEST_GEOMETRY_N) { // REQUEST_DETAIL_TEXTURE_N final Bitmap bitmap = getDetailTexture(id); if (bitmap != null) { mSyncHandler.obtainMessage(SET_DETAIL_TEXTURE_N, id, 0, bitmap).sendToTarget(); } } else if (msg.what < REQUEST_END) { // REQUEST_GEOMETRY_N Mesh mesh = getGeometry(id); if (mesh != null) { mSyncHandler.obtainMessage(SET_GEOMETRY_N, id, 0, mesh).sendToTarget(); } } } }; </pre>
返回
HandlerThread
。
导航菜单
个人工具
创建账号
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
设置
查看历史
更多
搜索
导航
首页
Ubuntu
Android
C&CPP
Java
Python
AI
大杂烩
最近更改
工具
所有页面
文件列表
页面信息
特殊页面