public class TimeThread extends Thread {
@Override
public void run () {
do {
try {
Thread.sleep ( 1000 );
Message msg = new Message ();
long sysTime = System.currentTimeMillis ();//获取系统时间
CharSequence sysTimeStr = DateFormat.format ( "hh:mm:ss", sysTime );
f =sysTimeStr.toString ();
msg.what = 1;
msg.obj = f;
myHandler.sendMessage ( msg );
Intent intent = new Intent();
intent.setAction("mybroadcast");
intent.putExtra ( "name" ,f);
sendBroadcast(intent);
} catch ( InterruptedException e ) {
e.printStackTrace ();
}
} while (true);
}
private Handler myHandler = new Handler () {
@Override
public void handleMessage ( Message msg ) {
super.handleMessage ( msg );
switch (msg.what) {
case 1:
//更新文本框里的值
v.setText ( (String) msg.obj );
break;
default:
break;
}
}
};
首先要定义新线程
重写run 这个方法。
因为在子线程里修改ui是不被允许的,所以只能在Handler 类里进行重写 handleMessage。通过Message导入消息
myThread = new TimeThread();
myThread.start ();
这是在activity里引用的方法。
注意使用start() 而不是run()
start 是真正的打开线程,run()只是从一个线程里得到一些位置。
5788

被折叠的 条评论
为什么被折叠?



