美文网首页
Android利用Handler更新主线程UI

Android利用Handler更新主线程UI

作者: Jey欧巴 | 来源:发表于2017-06-21 14:28 被阅读0次

在Android中利用Handler的原理主要是用来根据接收的消息,处理UI更新。Thread线程发出Handler消息,通知更新UI。

1.Handler在类中的写法:

private Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        switch(msg.what) {
            case 1:
              //do something in main UI Thread
            Bundle bundle = msg.getData();
            break;
        }
    }
};

2.在类中子线程调用Handler:

...

Message msg = new Message();

Bundle bundle = new Bundle();

msg.setData(bundle);

msg.what=1;

handler.sendMessage(msg);

...

3.使用Handler避免内存溢出的方法:移除所有的消息和回调,简单一句话就是清空了消息队列。注意,不要以为你post的是个Runnable或者只是sendEmptyMessage。你可以看一下源码,在handler里面都是会把这些转成正统的Message,放入消息队列里面,所以清空队列就意味着这个Handler直接被打成原型了,当然也就可以回收了。所以在外面的Activity或者Fragment中的关闭方法中,如onDestroy中调用一下handler.removeCallbacksAndMessages(null);

相关文章

  • Hander面试详解

    一.什么是handler android中 只有主线程才能更新ui,handler通知ui更新 耗时操作,(...

  • Android 的Handler消息机制

    Handler作用 Android 规定只有在主线程(UI线程)更新UI,否则会抛出异常,并且Android又建议...

  • Android系列:彻底了解Handler

    一、Handler 1.1 Android为什么==非ui线程==不能==更新ui== UI线程的机制 为什么UI...

  • 子线程更新Ui

    Android子线程更新Ui 1. handler 2.runOnUiThread

  • Handler的使用

    Handler通信工作原理 Android中为了UI操作线程安全,只允许UI线程更新Activity里的UI组件。...

  • Android利用Handler更新主线程UI

    在Android中利用Handler的原理主要是用来根据接收的消息,处理UI更新。Thread线程发出Handle...

  • Android 异步处理

    Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面 概述:每个Android应用...

  • Android消息机制(一)Handler

    利用Handler机制,子线程更新UI 使用上说:1.首先初始化一个handler 2.当子线程需要更新UI时,采...

  • 第三周

    Handler Handler 的功能 Handler 最常用的功能就是更新 UI。因为 Android 只能在主...

  • Handler(Android消息处理机制)

    一、Why Handler?Android中的UI控件是非线程安全的,因此更新UI的操作只能放到UI线程中处理,也...

网友评论

      本文标题:Android利用Handler更新主线程UI

      本文链接:https://www.haomeiwen.com/subject/pzttcxtx.html