1. 程式人生 > >Android每隔2秒執行一次命令 即定時傳送任務 非Timer方法

Android每隔2秒執行一次命令 即定時傳送任務 非Timer方法

public class MainActivity extends Activity {
	
	Button ks,js;
	TextView tv;
	String date;
	
	private Handler handler = new Handler( );
	private Runnable runnable;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		
		tv = (TextView)findViewById(R.id.textView1);
		ks = (Button)findViewById(R.id.bt1);
		js = (Button)findViewById(R.id.bt2);
		
		
	    runnable = new Runnable( ) {
			public void run ( ) {
				SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //獲取繫系時間      
				date = sDateFormat.format(new java.util.Date()); 
				Log.d("Date","獲取時間"+date);
				tv.setText(date);
				handler.postDelayed(this,2000); 
				//postDelayed(this,2000)方法安排一個Runnable物件到主執行緒佇列中
			}
		};

		//開始
		ks.setOnClickListener(new View.OnClickListener() {
			public void onClick(View arg0) {
				handler.postDelayed(runnable,1000); // 開始Timer
			}
		});
		//停止
		js.setOnClickListener(new View.OnClickListener() {
			public void onClick(View arg0) {
				handler.removeCallbacks(runnable); //停止Timer
			}
		});
	}
}