android關於Handler更新UI的用法

Handler 在android開發的Activity組件中會經常經常用到,那Handler有什麼用呢?Handler在什麼樣的情況下會用到呢?

 現在我來說一下比較常用的一種情況。

一般Activity 一開始會加載主線程,如果頁面上的數據是靜態的,也不用怎麼改變和交互,這種情況下完全用不上Handler。

但是一般的app都離不開網絡數據的動態加載(加載數據後需要更新UI),或者有一些數據交互或點擊事件的觸發(點擊後更新UI),這種情況就需要考慮使用Handler,

Handler 可以把加載的數據或點擊後改變的數據 通過  sendMessage 方法發送到一個消息隊列,然後在消息隊列裏面獲取數據後更新UI見如下代碼用法。

public class MainActivity extends Activity implements OnClickListener{


private Button btn;
private Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button)findViewById(R.id.btn);
handler = new Handler(){
//處理消息隊列中的數據
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
Toast.makeText(MainActivity.this, (String)msg.obj, Toast.LENGTH_LONG).show();
}
};
}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Message msg = new Message();
msg.obj = "Hi! I am james!";
handler.sendMessage(msg);//將數據放進消息隊列
}


}


    

     


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章