Activity는 Handler를 이용하여 Thread와 통신하여 간단한 데모를 썼다

최근에 여러분과 함께 나누고 싶은 열을 하나 썼습니다.
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());
			}
		}
	}
}

좋은 웹페이지 즐겨찾기