非主线程更新UI:Handler.post*方法

2017-08-13  本文已影响0人  万杰高科

学习心得

代码样例

/**
 * Created by Rambo
 */

public class MyActivity extends MainActivity {

    private EditText myEditText = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
        myEditText = (EditText) findViewById(R.id.myEditText);
        final Handler myHandler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
            }
        };
        new Thread(new Runnable() {
            @Override
            public void run() {

                myHandler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        for (int i=0; i<5; i++){
                            try {
                                Log.v(TAG, "main Thread:" + Thread.currentThread().getName());
                                Thread.sleep(500);
                                myEditText.setText(Thread.currentThread().getName() + ":" + i);
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                }, 1000);
                for (int j=0; j<5; j++){
                    try {
                        Thread.sleep(500);
                        Log.v(TAG, "New Thread:" + Thread.currentThread().getName());
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }

            }
        }).start();
    }

}
上一篇 下一篇

猜你喜欢

热点阅读