android使用handler ui線程和子線程通訊更新ui示例
package com.act262.sockettx;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
/**
* 可以在其他線程中獲取View類的數(shù)據(jù),但是不能修改或者設(shè)置View類的數(shù)據(jù)
*
*/
public class Main extends Activity {
TextView result = null;
EditText get = null;
Button update = null;
Handler handler;
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.main);
result = (TextView) findViewById(R.id.result);
update = (Button) findViewById(R.id.update);
get = (EditText) findViewById(R.id.get);
handler = new Handler() {
public void handleMessage(Message msg) {
if (msg.what == 1) {
result.setText("after update ui "
+ msg.getData().getString("data")
+ " \nman thread : "
+ Thread.currentThread().getName());
}
}
};
result.setText("before update ui main thread : "
+ Thread.currentThread().toString());
update.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new MyThread("my thread").start();
}
});
}
class MyThread extends Thread {
public MyThread(String name) {
super(name);
}
@Override
public void run() {
// 發(fā)送不帶數(shù)據(jù)的消息
// handler.sendEmptyMessage(1);
// 發(fā)送附帶數(shù)據(jù)的消息
Message msg = new Message();
Bundle data = new Bundle();
data.putString("data", get.getText().toString() + " my thread: "
+ Thread.currentThread().getName());
msg.setData(data);
msg.what = 1;
handler.sendMessage(msg);
}
}
}
相關(guān)文章
在Android中使用WebSocket實(shí)現(xiàn)消息通信的方法詳解
這篇文章主要介紹了在Android中使用WebSocket實(shí)現(xiàn)消息通信的方法詳解,消息推送功能可以說移動(dòng)APP不可缺少的功能之一,使用WebSocket實(shí)現(xiàn)消息推送功能。感興趣的可以了解一下2020-07-07
Android實(shí)現(xiàn)一個(gè)絲滑的自動(dòng)輪播控件實(shí)例代碼
輪播圖對(duì)大家來說應(yīng)該再熟悉不過了,下面這篇文章主要給大家介紹了關(guān)于Android實(shí)現(xiàn)一個(gè)絲滑的自動(dòng)輪播控件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08
Android Handler內(nèi)存泄漏詳解及其解決方案
在android開發(fā)過程中,我們可能會(huì)遇到過令人奔潰的OOM異常,這篇文章主要介紹了Android Handler內(nèi)存泄漏詳解及其解決方案,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08
Android動(dòng)畫之TranslateAnimation用法案例詳解
這篇文章主要介紹了Android動(dòng)畫之TranslateAnimation用法案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
Android RadioGroup和RadioButton控件簡(jiǎn)單用法示例
這篇文章主要介紹了Android RadioGroup和RadioButton控件簡(jiǎn)單用法,結(jié)合實(shí)例形式分析了Android單選按鈕控件的基本定義、布局與功能實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-07-07
Android使用socket進(jìn)行二進(jìn)制流數(shù)據(jù)傳輸
這篇文章主要介紹了Android使用socket進(jìn)行二進(jìn)制流數(shù)據(jù)傳輸,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-04-04
android實(shí)現(xiàn)貝塞爾曲線之波浪效果
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)貝塞爾曲線之波浪效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06
Android 5.0及以上編程實(shí)現(xiàn)屏幕截圖功能的方法
這篇文章主要介紹了Android 5.0及以上編程實(shí)現(xiàn)屏幕截圖功能的方法,結(jié)合實(shí)例形式分析了Android5.0以上實(shí)現(xiàn)截圖功能的相關(guān)類、函數(shù)及權(quán)限控制等操作技巧,需要的朋友可以參考下2018-01-01
Android中GIF動(dòng)圖的播放控制和監(jiān)聽詳解
android下播放gif圖片功能似乎并不常用,很多時(shí)候還是以展示靜態(tài)圖片為主,可能是由于gif圖體積比較大吧。不過像表情動(dòng)畫什么的,可能還是需要gif圖的。本文主要給大家介紹了關(guān)于Android中GIF動(dòng)圖的播放控制和監(jiān)聽的相關(guān)資料,需要的朋友可以參考下。2017-05-05
Android根據(jù)包名停止其他應(yīng)用程序的方法
這篇文章主要介紹了Android根據(jù)包名停止其他應(yīng)用程序,需要的朋友可以參考下2020-03-03

