在子线程中更新UI,只能使用Handler

Posted zqxLonely

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在子线程中更新UI,只能使用Handler相关的知识,希望对你有一定的参考价值。

package com.pingyijinren.test;

import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity{
    public static final int UPDATE_TEXT=1;
    private TextView textView;
    private Button button;

    private Handler handler=new Handler(){
      public void handleMessage(Message msg){
          switch(msg.what){
              case UPDATE_TEXT:
                  textView.setText("HelloWorld");
                  break;
              default:
                  break;
          }
      }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView=(TextView)findViewById(R.id.textView);
        button=(Button)findViewById(R.id.button);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new Thread(new Runnable(){
                    @Override
                    public void run(){
                        Message message=new Message();
                        message.what=UPDATE_TEXT;
                        handler.sendMessage(message);
                    }
                }).start();
            }
        });
    }
}

 

以上是关于在子线程中更新UI,只能使用Handler的主要内容,如果未能解决你的问题,请参考以下文章

Handler系列之使用

Handler 机制—— Handler的实现流程

Handler的使用

关于Handler的理解,子线程不能更新UI的纠正和回调的思考

Android Handler使用

Android--Handler的使用方法:在子线程中更新界面