您的位置:首页 > 移动开发 > Android开发

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

2015-03-14 14:14 99 查看
由于在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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: