Handler 的高级封装
来源:互联网 发布:技术总监 知乎 编辑:程序博客网 时间:2024/06/05 10:25
在我们使用Handler的时候 一般会在主线程中进行 发送消息或者是更新UI。
可能会出现线程错误异常,因此我们需要在工作线程使用的时候进行二次处理,下面的Handler封装将使用于任何地方。
public class MainLooper extends Handler { //Looper.getMainLooper() 获取主线程 private static MainLooper instance = new MainLooper(Looper.getMainLooper()); private MainLooper(Looper looper) { super(looper); } public static MainLooper getInstance() { return instance; } /** * 运行在主线程(发消息、更新UI) * @param runnable */ public static void runOnUiThread(Runnable runnable) { //当前是否为主线程 if (Looper.getMainLooper().equals(Looper.myLooper())) { runnable.run(); } else { instance.post(runnable); } } /** * 运行在主线程(发消息、更新UI) 有延迟 * @param runnable * @param delayMillis */ public static void runOnUiThreadDelay(Runnable runnable, long delayMillis) { if (Looper.getMainLooper().equals(Looper.myLooper())) { runnable.run(); } else { instance.postDelayed(runnable, delayMillis); } } /** * 移除 runnable * @param runnable */ public static void removeRunable(Runnable runnable) { instance.removeCallbacks(runnable); }}
阅读全文
1 0
- Handler 的高级封装
- ListView的高级封装
- Tensorflow的高级封装
- 对Handler的一点封装
- 对Handler的一点封装
- AsycTask(handler的封装类)
- android高级---->Handler的原理
- Handler处理HTTP请求的封装
- Handler的正确使用,软引用封装
- Android之ListView的高级封装!
- OkHttp:一次不太高级的封装
- Android之Handler高级
- Handler优化以及SharedPreferences工具类的封装
- RxAndroid 进行封装实现替代Handler的方案
- android-封装一个加载处理的handler类
- DBHelper高级封装
- Tensorflow-高级封装tflearn
- unity3d uGUI 高级封装
- Map Export——地图导出
- Spring入门之事件处理
- jquery-rails与jquery-ui-rails
- C语言中,"int* a, b, c;" 是正确写法吗?
- 编程题4-临考抱佛脚
- Handler 的高级封装
- java原子操作的原理 cas
- android:theme和app:popupTheme的作用
- 【备忘】2017达内Java视频课程价值20000元
- Spring Boot特性
- AJAX-数据格式提要
- linux中的(),(()),[],[[]],{}的作用
- 一个优秀的网站首页是如何设计的?
- oracle dg standbylog丢失案例