Android——Handler学习(简单计时器例子)

    由于在Android中,主线程不能阻塞,子线程不能直接动态修改UI控件。
    所以想要实现主线程动态更新UI,就需要Handler的配合。以下是一个简单的计时器例子,如果有什么不对或做得不好的,请多多指点

MainActivity.java文件如下:

package justrush.com.test3;

import android.os.Handler;
import android.os.Message;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity {

    TextView text;
    Handler handler;
    private boolean ifStop=true;
    private int count;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        text=(TextView)findViewById(R.id.time);

        handler=new Handler(){
        //重写handleMessage方法获得子线程传来的数据
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                text.setText(String.valueOf(msg.arg1));
            }
        };

        new Thread(new Runnable() {
            @Override
            public void run() {
                count=0;
                while(ifStop){
                    count++;
                    Message msg=new Message();

                    msg.arg1=count;
                    handler.sendMessage(msg);
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }).start();
    }
}

XML文件就不放上来了,Layout中只有一个TextView控件,ID为time

你可能感兴趣的:(Android学习笔记,android,计时器)