Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android--消息機制

Android--消息機制

編輯:關於Android編程

1. Message

消息,理解為線程間通訊的數據單元。例如後台線程在處理數據完畢後需要更新UI,則可發送一條包含更新信息的Message給UI線程。

2. Handler

Handler是Message的主要處理者,負責將Message添加到消息隊列以及對消息隊列中的Message進行處理。

3. Looper

循環器,扮演Message Queue和Handler之間橋梁的角色,循環取出Message Queue裡面的Message,並交付給相應的Handler進行處理。


請參考如下示例:

.xml代碼如下:




    


.java代碼如下:

package org.lxh.demo;

import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Hello extends Activity {
	public static int count = 1;
	public static final int SET = 1;
	private TextView msg = null;
	private Handler myHandle = new Handler() {

		@Override
		public void handleMessage(Message msg) {//覆寫此方法
			switch (msg.what) {//判斷操作類型
			case SET:
				Hello.this.msg.setText("MLDN-" + count++);
			}
		}

	};

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState); // 生命周期方法
		super.setContentView(R.layout.main); // 設置要使用的布局管理器
		this.msg = (TextView) super.findViewById(R.id.info);
		Timer timer = new Timer();//定義調度器
		timer.schedule(new MyTask(), 0, 1000);//0表示立即開始,1000表示間隔為一秒

	}

	private class MyTask extends TimerTask {

		@Override
		public void run() {//啟動線程
			Message msg = new Message();
			msg.what = SET;
			Hello.this.myHandle.sendMessage(msg);

		}

	}
}

運行示例如下:


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved