runOnUiThread 的使用

作者: 奔跑的佩恩 | 来源:发表于2017-07-26 11:01 被阅读431次

    在开发的过程中,我们经常涉及到在非主线程中更新ui的问题,我们能想到的几种方法如下:

    • handle ---- message 结构
    • AsyncTask
    handler ---- message 结构

    这个是我们更新ui的利器,但是 messageCode 是我不喜欢的,更新ui要发送code,还要在 handler 中 接收处理,如果更新的地方很多的话,会导致 code 在activity 中 乱飞,严重打乱我们代码的紧凑性。

    AsyncTask

    这个也是一个更新ui的好方法,但是一般继承它去实现异步更新的话,还是要写好多一部分辅助代码的,因为 AsyncTask 自带的需要实现的方法太多了,我们的需求是就在 textView 中显示 一下文字,如果用这个实现的话,简直是捅了马蜂窝了,什么 onPreExecute ,doInBackground(String... params),onProgressUpdate 等等方法会纷涌而至,让人防不胜防。即使我们写一个抽象类来抽取部分它的方法出来,那又得多个文件了,为了一个简单的 textView 显示,多少显得有些"不值"。

    那么,runOnUiThread 就闪亮的登场了!

    它的使用的话,也不难,但能简洁而轻快的解决简单 ui 更新的需求,例如以下是我点击button,更新 button文字的例子:

       @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.btn_test:
                    this.runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            mBtnTest.setText("王者荣耀");
                        }
                    });
                    break;
                case 1:
                    break;
                default:
                    break;
            }
        }
    

    效果图如下:


    1.gif

    ok,关于这方面的内容就讲到这啦,谢谢诶!

    相关文章

      网友评论

        本文标题:runOnUiThread 的使用

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