最近写了一个列子,想跟大家一起分享.
用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());
- }
- }
- }
- }