欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android多線程處理機制中的Handler使用介紹

 更新時間:2013年06月07日 16:50:51   作者:  
本文將為大家介紹下Android的Handler的使用方法,Handler可以發(fā)送Messsage和Runnable對象到與其相關聯(lián)的線程的消息隊列,感興趣的朋友可以了解下哈
接下來讓我介紹Android的Handler的使用方法。Handler可以發(fā)送Messsage和Runnable對象到與其相關聯(lián)的線程的消息隊列。每個Handler對象與創(chuàng)建它的線程相關聯(lián),并且每個Handler對象只能與一個線程相關聯(lián)。

Handler一般有兩種用途:1)執(zhí)行計劃任務,你可以再預定的實現(xiàn)執(zhí)行某些任務,可以模擬定時器。2)線程間通信。在Android的應用啟動時,會創(chuàng)建一個主線程,主線程會創(chuàng)建一個消息隊列來處理各種消息。當你創(chuàng)建子線程時,你可以再你的子線程中拿到父線程中創(chuàng)建的Handler對象,就可以通過該對象向父線程的消息隊列發(fā)送消息了

MainActivity.java
[java]
復制代碼 代碼如下:

package com.example.thread;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tv;
// 消息處理者
private Handler handler;
private static final int TURNTEXT = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
System.out.println("主線程----" + Thread.currentThread().getName());
tv = new TextView(this);
tv.setText("你好");
setContentView(tv);
// 處理者
handler = new Handler() {
// handlerMessage方法處理handler發(fā)送的消息
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
// msg.what操作獲取發(fā)送什么消息,根據消息的標識,進行不同處理方式
int what = msg.what;
if (what == TURNTEXT) {
tv.setText(System.currentTimeMillis() + "");
}
}
};
try {
//主線程 阻塞 6s 大于
Thread.sleep(10000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//run方法執(zhí)行完畢 線程就死掉
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
System.out.println("子線程----"
+ Thread.currentThread().getName());
Thread.sleep(1000);
// 發(fā)送消息 what標識
handler.sendEmptyMessage(TURNTEXT);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}).start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
package com.example.thread;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tv;
// 消息處理者
private Handler handler;
private static final int TURNTEXT = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
System.out.println("主線程----" + Thread.currentThread().getName());
tv = new TextView(this);
tv.setText("你好");
setContentView(tv);
// 處理者
handler = new Handler() {
// handlerMessage方法處理handler發(fā)送的消息
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
// msg.what操作獲取發(fā)送什么消息,根據消息的標識,進行不同處理方式
int what = msg.what;
if (what == TURNTEXT) {
tv.setText(System.currentTimeMillis() + "");
}
}
};
try {
//主線程 阻塞 6s 大于
Thread.sleep(10000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//run方法執(zhí)行完畢 線程就死掉
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
System.out.println("子線程----"
+ Thread.currentThread().getName());
Thread.sleep(1000);
// 發(fā)送消息 what標識
handler.sendEmptyMessage(TURNTEXT);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}).start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

相關文章

  • Android Koin2基本使用的那件事兒

    Android Koin2基本使用的那件事兒

    這篇文章主要給大家介紹了關于Android Koin2基本使用的那件事兒,文中通過示例代碼介紹的非常詳細,對各位Android開發(fā)者們具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-09-09
  • 簡述Android中SELinux的TE

    簡述Android中SELinux的TE

    SELinux使用類型強制來改進強制訪問控制。這篇文章給大家介紹了Android中SELinux的TE的相關知識,感興趣的朋友一起看看吧
    2018-03-03
  • android中圖片的三級緩存cache策略(內存/文件/網絡)

    android中圖片的三級緩存cache策略(內存/文件/網絡)

    實現(xiàn)圖片緩存也不難,需要有相應的cache策略。這里我采用 內存-文件-網絡 三層cache機制,其中內存緩存包括強引用緩存和軟引用緩存(SoftReference),其實網絡不算cache,這里姑且也把它劃到緩存的層次結構中
    2013-06-06
  • Android中用StaticLayout實現(xiàn)文本繪制自動換行詳解

    Android中用StaticLayout實現(xiàn)文本繪制自動換行詳解

    StaticLayout是android中處理文字換行的一個工具類,StaticLayout已經實現(xiàn)了文本繪制換行處理,下面這篇文章主要介紹了Android中用StaticLayout實現(xiàn)文本繪制自動換行的相關資料,需要的朋友可以參考。
    2017-03-03
  • Android學習之本地廣播使用方法詳解

    Android學習之本地廣播使用方法詳解

    這篇文章主要為大家詳細介紹了Android學習之本地廣播使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Android實現(xiàn)QQ的第三方登錄和分享

    Android實現(xiàn)QQ的第三方登錄和分享

    這篇文章主要為大家詳細介紹了Android實現(xiàn)QQ的第三方登錄和分享,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Linux命令行下編譯Android NDK的示例代碼

    Linux命令行下編譯Android NDK的示例代碼

    今天小編就為大家分享一篇關于Linux命令行下編譯Android NDK的示例代碼,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Flutter實現(xiàn)簡單的內容高亮效果

    Flutter實現(xiàn)簡單的內容高亮效果

    內容高亮并不陌生,特別是在搜索內容頁面,可以說四處可見,這篇文章主要為大家介紹了如何使用Flutter實現(xiàn)簡單的內容高亮效果,需要的可以參考下
    2023-08-08
  • Android 新聞界面模擬ListView和ViewPager的應用

    Android 新聞界面模擬ListView和ViewPager的應用

    本文主要介紹 Android ListView和ViewPager的應用,這里模擬了新聞界面及實現(xiàn)示例代碼,有需要的小伙伴可以參考下
    2016-09-09
  • Android觸摸事件如何實現(xiàn)筆觸畫布詳解

    Android觸摸事件如何實現(xiàn)筆觸畫布詳解

    這篇文章主要給大家介紹了關于Android觸摸事件如何實現(xiàn)筆觸畫布的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-10-10

最新評論