Android入门之在子线程中更新UI

1. 前言

和很多其他的GUI库一样,Android的UI线程也是不安全的,也就是说,要想更新应用程序中的U元素,必须在主线程中进行,否则就会报错。一个应用程序启动之后,系统会默认的创建一个"main"的主线程,这个线程是应用于界面工具包(android.widgeth和android.view)交互的地方。在很多时候,进行开发工作的时候,会进行一些耗时的操作,如网络连接、数据库查询等,如果这些工作全部在主线程中进行,就有可能造成拥堵,导致界面进程就被阻塞,影响客户体验。耗时的任务需要在子线程,然后根据任务的结果来更新相应的UI控件。对于这种情况,Android提供了一套异步消息处理机制,完美地解决了在子线程中进行UI操作的问题。


2. 方法总结

这是我个人使用过的方法,如果有什么缺漏或者补充,可以联系我指出
1) Activity.runOnUIThread(Runnable)
2) Handler
3) AsyncTask

3. Activity.runOnUIThread(Runnable)

这一种方法是最简单的,只需要在子线程中需要更新子线程的地方直接调用就好,这会直接将子线程切回到主线程,由于不是新线程,所以尽量不在里面进行过多的耗时操作。下面是一个简单的例子
    new Thread(new Runnable() {
            @Override
            public void run() {

                //耗时操作

                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        //进行UI操作
                    }
                });

            }
        }).start();


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值