中文字幕欧美日韩一区二区三区_高清久久一区_阳光姐妹淘韩国版_日韩精品免费视频一区二区三区_91在线成人_一级黄色免费_精品欧美黑人一区二区三区

通州北大青鳥(niǎo)學(xué)術(shù)部:Android組件_handler.doc

通州北大青鳥(niǎo)學(xué)術(shù)部推薦:對(duì)于Handler來(lái)說(shuō),它和與它調(diào)用它的Activity是出于同一線程的,下面進(jìn)行一下實(shí)驗(yàn)
Java代碼
1. package org.hualang.handlertest3;  
2.  
3. import android.app.Activity;  
4. import android.os.Bundle;  
5. import android.os.Handler;  
6. import android.util.Log;  
7.  
8. public class HandlerTest3 extends Activity {  
9.     private Handler handler = new Handler();  
10.     private String TAG = "System.out";  
11.     @Override 
12.     public void onCreate(Bundle savedInstanceState) {  
13.         super.onCreate(savedInstanceState);  
14.         handler.post(r);  
15.         setContentView(R.layout.main);  
16.         //Thread t = new Thread(r);  
17.         //t.start();  
18.           
19.         Log.d(TAG,"Activity id:"+Thread.currentThread().getId());  
20.         Log.d(TAG,"Activity name:"+Thread.currentThread().getName());  
21.           
22.     }  
23.     Runnable r = new Runnable()  
24.     {  
25.         public void run()  
26.         {  
27.             Log.d(TAG,"Handler id:"+Thread.currentThread().getId());  
28.             Log.d(TAG,"Handler name:"+Thread.currentThread().getName());  
29.             try {  
30.                 Thread.sleep(5000);  
31.             } catch (InterruptedException e) {  
32.                 // TODO Auto-generated catch block  
33.                 e.printStackTrace();  
34.             }  
35.         }  
36.     };  
37. } 
 
運(yùn)行結(jié)果: (通州北大青鳥(niǎo))
證明是同一個(gè)線程的兩個(gè)依據(jù):
①Activity的id或name和Handler的id或name是同樣的
②我設(shè)置了
 handler.post(r);
 setContentView(R.layout.main);
也就是,如果執(zhí)行后馬上顯示文本信息,那么可以證明它們不在同一個(gè)線程,但是實(shí)際情況是要先執(zhí)行了handler后5秒,才顯示文本信息,說(shuō)明它們?cè)谕痪程

如果將代碼改為(通州北大青鳥(niǎo))
Java代碼    
1. //handler.post(r);  
2. setContentView(R.layout.main);  
3. Thread t = new Thread(r);  
4. t.start(); 
 再次執(zhí)行,運(yùn)行結(jié)果如下,通過(guò)start啟動(dòng)線程,它們不在同一個(gè)線程中

Looper即循環(huán)的從隊(duì)列當(dāng)中取得消息的功能,如果在線程中使用Looper
那么,就會(huì)循環(huán)的從線程隊(duì)列當(dāng)中取得消息并處理,如果隊(duì)列當(dāng)中沒(méi)有消息的話
,線程就進(jìn)入了休眠狀態(tài)
Looper很少自己創(chuàng)建,在Android中給出了HandlerThread類,并且具有循環(huán)取得并處理消息的功能
 
下面來(lái)實(shí)現(xiàn)這種Activity和Handler分別在兩個(gè)線程中執(zhí)行,實(shí)現(xiàn)真正的異步處理
Java代碼     (通州北大青鳥(niǎo))
1. package org.hualang.handlertest;  
2.  
3. import android.app.Activity;  
4. import android.os.Bundle;  
5. import android.os.Handler;  
6. import android.os.HandlerThread;  
7. import android.os.Looper;  
8. import android.os.Message;  
9. import android.util.Log;  
10.  
11. public class HandlerTest4 extends Activity {  
12.     /** Called when the activity is first created. */ 
13.     @Override 
14.     public void onCreate(Bundle savedInstanceState) {  
15.         super.onCreate(savedInstanceState);  
16.         setContentView(R.layout.main);  
17.         Log.d("System.out","Activity所在線程的id:"+Thread.currentThread().getId());  
18.         /** 
19.          * 生成一個(gè)HandlerThread對(duì)象,實(shí)現(xiàn)了使用Looper來(lái)處理消息隊(duì)列的功能 
20.          * 這個(gè)類由Android應(yīng)用程序框架提供 
21.          */ 
22.         HandlerThread handlerThread = new HandlerThread("handlerThread");  
23.         handlerThread.start();  
24.         MyHandler handler = new MyHandler(handlerThread.getLooper());  
25.         Message msg = handler.obtainMessage();  
26.         /** 
27.          * 將Message對(duì)象發(fā)送到目標(biāo)對(duì)象 
28.          * 所謂的目標(biāo)對(duì)象,就是生成該msg對(duì)象的handler對(duì)象 
29.          */ 
30.         msg.sendToTarget();  
31.     }  
32.     class MyHandler extends Handler  
33.     {  
34.         public MyHandler()  
35.         {     
36.         }  
37.         public MyHandler(Looper looper)  
38.         {  
39.             super(looper);  
40.         }  
41.         public void handleMessage(Message msg)  
42.         {  
43.             Log.d("System.out", "handler所在線程的id:"+Thread.currentThread().getId());  
44.         }  
45.     }  
46. } 
 
運(yùn)行結(jié)果:

可以看到,Activity和Handler是在兩個(gè)不同的線程中執(zhí)行的,這樣就是實(shí)現(xiàn)了真正的異步處理(通州北大青鳥(niǎo))

1、首先創(chuàng)建一個(gè)HandlerThread對(duì)象,這個(gè)HandlerThread類實(shí)現(xiàn)了循環(huán)的取得消息并處理
2、用start方法啟動(dòng)一個(gè)新線程
3、創(chuàng)建MyHandler類,里面?zhèn)鬟f的參數(shù)即Looper方法所獲得的可以循環(huán)在隊(duì)列中取得的消息
4、MyHandler類調(diào)用的是帶參數(shù)Looper的構(gòu)造方法,并且實(shí)現(xiàn)了handlerMessage方法
5、獲取一個(gè)Message對(duì)象
6、將這個(gè)對(duì)象發(fā)送到生成該msg對(duì)象的handler對(duì)象,從而執(zhí)行了handleMessage方法
 
-----------------------------------------------------------------------------------------------------
最后,將說(shuō)一下Message里傳送的數(shù)據(jù)的使用,這里的msg對(duì)象可以使用arg1,arg2或者obj
arg1 and arg2 are lower-cost alternatives to using setData() if you only need to store a few integer values. 也就是相對(duì)于setData()方法,如果你僅僅保存一些簡(jiǎn)單的整形數(shù)的話,arg1,arg2對(duì)資源的要求較低,而setData()方法一般用于傳遞大量數(shù)據(jù)的時(shí)候會(huì)用到
 
如果是msg.obj,那么可以這樣用
msg.obj = "Welcome to china";
然后在handleMessage()方法中用
String str = (String)msg.obj;來(lái)獲得傳遞的值
 
如果使用getData()方法的話,需要用到Bundle對(duì)象來(lái)傳遞,下面用個(gè)例子來(lái)說(shuō)明
Java代碼    
1. Bundle b = new Bundle();  
2. b.putInt("age", 22);  
3. b.putString("name", "loulijun");  
4. msg.setData(b);  
5. msg.sendToTarget(); 
 
上面的代碼用來(lái)設(shè)置要傳遞的數(shù)據(jù)(通州北大青鳥(niǎo))

下面的代碼用來(lái)獲取Bundle傳遞過(guò)來(lái)的數(shù)據(jù)并且用Toast來(lái)顯示
Java代碼    
1. Bundle b = msg.getData();  
2.             int age = b.getInt("age");  
3.             String name = b.getString("name");  
4.             Toast toast = Toast.makeText(getApplicationContext(), "age="+age+"name="+name, Toast.LENGTH_LONG);  
5.             toast.show(); 
 
package org.hualang.handlertest;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Looper;
import android.os.Message;
import android.util.Log;
import android.widget.Toast;

public class HandlerTest4 extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Log.d("System.out","Activity所在線程的id:"+Thread.currentThread().getId());
        /**
         * 生成一個(gè)HandlerThread對(duì)象,實(shí)現(xiàn)了使用Looper來(lái)處理消息隊(duì)列的功能
         * 這個(gè)類由Android應(yīng)用程序框架提供
         */
        HandlerThread handlerThread = new HandlerThread("handlerThread");
        /**
         * 使用HandlerThread的getLooper()方法之前,必須先調(diào)用該類的start()方法,否則是個(gè)null,會(huì)報(bào)錯(cuò)
         */
        handlerThread.start();
        MyHandler handler = new MyHandler(handlerThread.getLooper());
        Message msg = handler.obtainMessage();
        /**
         * 將Message對(duì)象發(fā)送到目標(biāo)對(duì)象
         * 所謂的目標(biāo)對(duì)象,就是生成該msg對(duì)象的handler對(duì)象
         */
        //msg.obj = "Hello world";
        Bundle b = new Bundle();
        b.putInt("age", 22);
        b.putString("name", "loulijun");
        msg.setData(b);
        msg.sendToTarget();
    }
    class MyHandler extends Handler
    {
    public MyHandler()
    {
    }
    public MyHandler(Looper looper)
    {
    super(looper);
    }
    public void handleMessage(Message msg)
    {
    //String str = (String)msg.obj
    Bundle b = msg.getData();
    int age = b.getInt("age");
    String name = b.getString("name");
    Toast toast = Toast.makeText(getApplicationContext(), "age="+age+"name="+name, Toast.LENGTH_LONG);
    toast.show();
    Log.d("System.out", "handler所在線程的id:"+Thread.currentThread().getId());
    }
    }
}
 運(yùn)行結(jié)果:(通州北大青鳥(niǎo))

(通州北大青鳥(niǎo))

北大青鳥(niǎo)網(wǎng)上報(bào)名
北大青鳥(niǎo)招生簡(jiǎn)章
中文字幕欧美日韩一区二区三区_高清久久一区_阳光姐妹淘韩国版_日韩精品免费视频一区二区三区_91在线成人_一级黄色免费_精品欧美黑人一区二区三区
久久99久久99精品免视看婷婷 | 亚洲无人区一区| 亚洲女同ⅹxx女同tv| 亚洲精选免费视频| 亚洲国产成人高清精品| 日本怡春院一区二区| 久久国内精品自在自线400部| 国产美女精品一区二区三区| 风间由美性色一区二区三区| 色猫猫国产区一区二在线视频| 欧美色视频一区| 337p日本欧洲亚洲大胆精品| 中文字幕日韩一区二区| 亚洲成av人在线观看| 国产一区二区美女诱惑| 色呦呦日韩精品| 日韩欧美综合在线| 亚洲女性喷水在线观看一区| 麻豆一区二区99久久久久| 99久久久精品| 欧美成人vr18sexvr| 亚洲人吸女人奶水| 精品中文字幕一区二区小辣椒| 92国产精品观看| 久久中文娱乐网| 亚洲成人www| 波多野结衣亚洲一区| 日韩欧美在线一区二区三区| 亚洲欧洲在线观看av| 另类调教123区| 欧美在线小视频| 欧美激情中文字幕| 久久99热狠狠色一区二区| 欧美午夜电影网| 亚洲日本va午夜在线电影| 极品少妇xxxx精品少妇偷拍 | 久久久www成人免费毛片麻豆| 亚洲一卡二卡三卡四卡| 国产成人精品免费| 欧美大度的电影原声| 亚洲综合丁香婷婷六月香| 国产99久久久久| 欧美tickle裸体挠脚心vk| 香蕉乱码成人久久天堂爱免费| 成人av在线看| 久久新电视剧免费观看| 青青草国产成人av片免费| 色偷偷成人一区二区三区91| 国产视频一区二区在线观看| 美女高潮久久久| 91精品国产综合久久蜜臀| 亚洲自拍偷拍欧美| 一本大道久久精品懂色aⅴ| 国产精品亲子乱子伦xxxx裸| 国内精品视频一区二区三区八戒| 日韩欧美国产综合| 日韩精品1区2区3区| 欧美精品色一区二区三区| 亚洲成人av中文| 欧美日韩大陆一区二区| 亚洲国产毛片aaaaa无费看| 波波电影院一区二区三区| 国产精品天美传媒沈樵| 国产精品1区二区.| 久久综合久久鬼色中文字| 国产在线一区二区综合免费视频| 欧美成人性战久久| 美女脱光内衣内裤视频久久影院| 欧美一区二区三区视频免费播放| 日本中文字幕一区| 精品av久久707| 成人在线视频首页| 1024国产精品| 欧美日韩在线综合| 日韩主播视频在线| 日韩精品一区二区三区三区免费| 麻豆成人久久精品二区三区红 | 91在线观看污| 亚洲精选视频免费看| 欧美日韩国产精品自在自线| 日本欧洲一区二区| 一本大道久久精品懂色aⅴ| 99麻豆久久久国产精品免费优播| 成人国产亚洲欧美成人综合网 | 色噜噜狠狠色综合中国| 夜夜精品浪潮av一区二区三区| 91免费版在线| 亚洲国产中文字幕| 欧美成人性福生活免费看| 国产精品一级二级三级| 国产精品短视频| 在线成人av网站| 国产成人精品免费视频网站| 亚洲天堂网中文字| 8v天堂国产在线一区二区| 国产高清不卡二三区| 一区二区三区成人在线视频| 欧美一区二区三区视频在线| 北条麻妃国产九九精品视频| 午夜精彩视频在线观看不卡| 26uuu精品一区二区在线观看| 北岛玲一区二区三区四区| 日韩主播视频在线| 综合久久久久久| 欧美成人精精品一区二区频| 色综合天天综合狠狠| 麻豆91在线播放| 亚洲黄色性网站| 久久精品一区二区| 欧美日韩免费视频| 成a人片亚洲日本久久| 免费在线观看一区二区三区| 国产精品第13页| 久久免费精品国产久精品久久久久| 色88888久久久久久影院野外 | 一区二区三区精品| 久久久国产午夜精品| 欧美日韩精品一区二区| 国产91在线看| 精品亚洲免费视频| 日韩精品五月天| 一区二区三区中文免费| 夜夜嗨av一区二区三区网页| 日韩亚洲欧美在线| 91电影在线观看| 丁香一区二区三区| 九九在线精品视频| 免费一级欧美片在线观看| 中文字幕国产一区二区| 日韩午夜在线观看| 欧美日韩一区在线| 97久久久精品综合88久久| 国产乱一区二区| 老司机精品视频导航| 亚洲成人免费视| 一区二区三区蜜桃网| 成人欧美一区二区三区在线播放| 中文字幕免费观看一区| 久久久无码精品亚洲日韩按摩| 欧美一区二区三区视频免费| 欧美日韩免费一区二区三区| 在线观看91精品国产入口| 99这里都是精品| 99re在线精品| 97久久精品人人做人人爽50路| 成人午夜精品一区二区三区| 国产激情精品久久久第一区二区| 激情图片小说一区| 久久国产精品露脸对白| 免费av成人在线| 久久99精品国产麻豆不卡| 美国毛片一区二区| 激情文学综合插| 国产成人夜色高潮福利影视| 国产91富婆露脸刺激对白| www.欧美精品一二区| 91小宝寻花一区二区三区| 99久久久久久99| 欧洲在线/亚洲| 7777精品伊人久久久大香线蕉| 欧美一区二区三区人| 欧美一级生活片| 久久久久青草大香线综合精品| 国产色产综合产在线视频| 国产精品午夜春色av| 亚洲婷婷国产精品电影人久久| 亚洲欧美日韩在线播放| 亚洲国产精品综合小说图片区| 亚洲国产sm捆绑调教视频 | av在线播放一区二区三区| 欧美中文一区二区三区| 在线播放中文字幕一区| 日韩欧美中文一区| 欧美激情在线看| 亚洲欧美成人一区二区三区| 亚洲五月六月丁香激情| 蜜桃视频在线观看一区| 国产福利一区二区三区| 色乱码一区二区三区88| 91精品国产综合久久精品图片 | 国产精品另类一区| 亚洲成av人影院| 国产伦精品一区二区三区免费迷 | 五月天激情综合| 国产成人在线看| 色综合久久久久综合体桃花网| 91麻豆精品国产91久久久久久久久| 精品盗摄一区二区三区| 亚洲欧美日韩国产成人精品影院 | 国产精品911| 欧美日韩一区三区| 久久久久久久久伊人| 亚洲狠狠丁香婷婷综合久久久| 日本 国产 欧美色综合| k8久久久一区二区三区| 欧美一级片在线看| 亚洲天堂精品视频| 精品无码三级在线观看视频| 色综合久久中文字幕综合网| 久久一夜天堂av一区二区三区|