(Android review)handler的基本使用,androidhandler

來源:互聯網
上載者:User

(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(){},只是一瞬間就結束的,可它仍時刻監視著自已的訊息以便隨時再處理,這似乎有點不符常規令人不解,但細想一下,這就象一個按鈕控制項對象,
你點擊一下,它就能響應一次點擊處理事件。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.