Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 在子線程中更新UI的幾種方法

Android 在子線程中更新UI的幾種方法

編輯:關於Android編程

第一種:

new Handler(context.getMainLooper()).post(new Runnable() {

	@Override
	public void run() {
		// 在這裡執行你要想的操作 比如直接在這裡更新ui或者調用回調在 在回調中更新ui

	}
});

context是你傳過來的context對象


第二種:

// 如果當前線程是UI線程,那麼行動是立即執行。如果當前線程不是UI線程,操作是發布到事件隊列的UI線程
// 因為runOnUiThread是Activity中的方法,Context是它的父類,所以要轉換成Activity對象才能使用
((Activity) context).runOnUiThread(new Runnable() {

	@Override
	public void run() {
		// 在這裡執行你要想的操作 比如直接在這裡更新ui或者調用回調在 在回調中更新ui
	}
});
第三種:

第三種是使用Handler的方法,往Handler中發送一個消息,然後當Handler接收到你發送過來的消息,再在Handler執行相應的操作
這是接收消息執行的代碼:

	private Handler handler = new Handler() {

		@Override
		public void handleMessage(Message msg) {
			super.handleMessage(msg);

			switch (msg.what) {
			case 1:
				button1.setText("點擊安裝");
				down = 1;
				break;
			case 2:
				down = 2;
				button1.setText("打開");
				break;
			}
		}

	};

這是發送消息的代碼:

// 往handler發送一條消息 更改button的text屬性
Message message = handler.obtainMessage();
message.what = 1;
handler.sendMessage(message);


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