最近写了一个列子,想跟大家一起分享.
用android.os.Handler、java.lang.Thread以及android.os.Message这三个类的整合应用。
这里只有Activity类代码.其他的一些布局文件,我想看到以下代码,你们因该明白.
用android.os.Handler、java.lang.Thread以及android.os.Message这三个类的整合应用。
这里只有Activity类代码.其他的一些布局文件,我想看到以下代码,你们因该明白.
import java.text.SimpleDateFormat;
import java.util.Date;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import com.wm.nsp.R;
public class DateHandlerActiviy extends Activity {
private MyHandler myHandler;
private TextView textView;
private boolean bool = true;
private static final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.date);
textView = (TextView)findViewById(R.id.textView);
Button startButton = (Button)findViewById(R.id.startButton);
Button endButton = (Button)findViewById(R.id.endButton);
startButton.setOnClickListener(listener);
endButton.setOnClickListener(listener);
myHandler = new MyHandler(Looper.getMainLooper());
}
private OnClickListener listener = new OnClickListener() {
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.startButton:
bool = true;
new myThread().start();//启动线程,开始计时
break;
case R.id.endButton:
bool = false;//结束线程
break;
default:
break;
}
}
};
class myThread extends Thread{
@Override
public void run() {
while(bool){
Message message = myHandler.obtainMessage();
message.what = 1;
message.obj = simpleDateFormat.format(new Date());
myHandler.sendMessage(message);
try {
Thread.sleep(1000);//休息一秒
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
class MyHandler extends Handler{
public MyHandler(Looper looper){
super(looper);
}
@Override
public void handleMessage(Message msg) {
Log.i("System.out", msg.obj+"");
if(msg.what == 1){
textView.setText(msg.obj.toString());
}
}
}
}