(Android review)handler的基本使用,androidhandler
一、基本知識點
1、Intent intent = new Intent();//開啟瀏覽器的
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
2、SystemClock.sleep(20000);//睡眠20秒,用來掩飾想贏一場
3、耗時的操作都應該子線程中做
連網擷取資料
大檔案的拷貝
都需要放置在子線程來操作
onCreate() 按鈕點擊回調事件、對於顯示的操作都是在主線程裡面運行。UI線程。
4、handler的使用
new Handler();
Message msg = new Message();
msg.what = UPDATE_DISPLAY;//設定訊息的唯一識別
msg.obj = i;
mHandler.sendMessage(msg)
二、範例程式碼
package com.example.handlertest;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.os.SystemClock;import android.app.Activity;import android.view.Menu;import android.view.View;import android.widget.TextView;public class MainActivity extends Activity {public TextView tv_num;public static final int UPDATE_NUMBER = 0;public int i = 0;public Handler handler = new Handler(){public void handleMessage(android.os.Message msg) {if(msg.what == UPDATE_NUMBER){int i = (Integer) msg.obj;tv_num.setText(i + "");}};};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);tv_num = (TextView) findViewById(R.id.tv_number);}public void add(View view){new Thread(){@Overridepublic void run() {super.run();while(i < 100){SystemClock.sleep(1000);i += 1;Message msg = new Message();msg.what = UPDATE_NUMBER;msg.obj = i;handler.sendMessage(msg);}}}.start();}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
三、源碼下載
http://download.csdn.net/detail/caihongshijie6/7798627
四、
Android中Handler的使用方法
你可以直接建立自己的thread來完成一些工作。
Handler主要是用來跟UI主線程互動用。 比如:
1、你用handler發送一個message,然後在handler的線程中來接收、處理該訊息,以避免直接在UI主線程中處理事務導致影響UI主線程的其他處理工作。
2、你可以將handler對象傳給其他進程,以便在其他進程中通過handler給你發送事件。
3、通過handler的延時發送message,可以延時處理一些事務的處理
android中handler的使用
Handler這部分我也在用,模仿例子套著用,主要用於子線程向主程式發訊息,讓Handler對象處理。你的疑問我也有,這new Handler(){},只是一瞬間就結束的,可它仍時刻監視著自已的訊息以便隨時再處理,這似乎有點不符常規令人不解,但細想一下,這就象一個按鈕控制項對象,
你點擊一下,它就能響應一次點擊處理事件。