1. 程式人生 > >Handler訊息傳遞機制(三)Message訊息的兩種傳送方式

Handler訊息傳遞機制(三)Message訊息的兩種傳送方式

這裡佈局和mainfest的定義省了,直接看樣例

package com.example.message2;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity implements OnClickListener{

	private Button send;
	private Handler handler = new Handler(){
		@Override
		public void handleMessage(android.os.Message msg){
			System.out.println("what-->>"+msg.what);//話說用System.out.print(..)就打不出了
		}
	};
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		send = (Button) findViewById(R.id.button1);
		send.setOnClickListener(this);
	}
	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.button1:
			/*handler可用send傳送訊息
			 * 	 handler.sendEmptyMessage(3);   
			 * 宣告一個空的訊息,引數為what,實際上最後呼叫sendMessageDelayed
			 */
			//以下handler是用post傳送的
			handler.post(new Runnable() {
						
						@Override
						public void run() {
							// 這裡handler的傳送方式有多種
							handler.sendEmptyMessage(3);
							//handler.sendEmptyMessageAtTime(3, 10);
						}
					});
			break;
		default:
			break;
		}
	}
}

日誌打出的結果

原始碼下載