android学习笔记之handler消息处理机制1

android学习笔记之handler消息处理机制1,第1张

概述在andorid中,一个进程中最少也有一个线程,一般来说,有一个主线程(也就UI线程);以及多个子线程(也叫Worker线程)。在android中有一个规则:考虑到安全性,子线程不能动态的改变主线程中组件的属性值。但为了执行一些耗时 *** 作,往往会将它们放在子线程中,执行完毕要更新主线程中的UI,所以

在andorID中,一个进程中最少也有一个线程,一般来说,有一个主线程(也就UI线程);以及多个子线程(也叫Worker线程)。
在androID中有一个规则:考虑到安全性,子线程不能动态的改变主线程中组件的属性值。
但为了执行一些耗时 *** 作,往往会将它们放在子线程中,执行完毕要更新主线程中的UI,所以就有了handler消息处理机制
handler就相当于一个中转站,子线程通过sendMessage()等方法,将消息发送给handler对象,handler根据发送的消息对主线程进行相关的处理,从而达到子线程Update主线程的目的。
下面写个Demo:
1.布局,一个TextVIEw和一个button,实现在子线程中单击button实现改变TextVIEw的值。如图


2.MainActivity中(需要注意的是Handler要导入的包是os)

 protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_main);        final TextVIEw textVIEw= (TextVIEw) findVIEwByID(R.ID.text);        button button= (button) findVIEwByID(R.ID.button);        final Handler handler=new Handler(){            @OverrIDe            public voID handleMessage(Message msg) {                super.handleMessage(msg);                if (msg.what==123){                    textVIEw.setText("sb");                }            }        };        button.setonClickListener(new VIEw.OnClickListener() {            @OverrIDe            public voID onClick(VIEw v) {                new Thread(new Runnable() {                    @OverrIDe                    public voID run() {                        handler.sendEmptyMessage(123);                    }                }).start();            }        });    }
点赞收藏分享文章举报

织田、信长发布了28 篇原创文章 · 获赞 15 · 访问量 7790私信 关注 总结

以上是内存溢出为你收集整理的android学习笔记之handler消息处理机制1全部内容,希望文章能够帮你解决android学习笔记之handler消息处理机制1所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1066609.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存