欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Android Handler與Looper

Handler與Looper經(jīng)常用在異步消息處理里,當然大部分時(shí)間是與線(xiàn)程集合起來(lái)進(jìn)行異步通信及處理的。

Android中的異步消息處理涉及Handler、Looper、Message和MessageQueue如下 :

Handler

Handler主要是消息發(fā)送和接收的處理者,負責發(fā)送Message到消息隊列,以及處理Looper分派過(guò)來(lái)的Message。

Handler類(lèi)可用于在主線(xiàn)程和工作線(xiàn)程中收發(fā)消息,Handler對象在工作線(xiàn)程中發(fā)送消息,該消息發(fā)送至消息隊列中后等待處理。

在主線(xiàn)程中,Handler從消息隊列中接收消息,并根據消息中的信息決定如何更新主線(xiàn)程中的UI。

Looper 

Looper扮演MessageQueue和Handler之間的橋梁角色,負責消息循環(huán)和消息派發(fā),其去循環(huán)取出MessageQueue中的Message,并將取出的Message交付給相應的Handler處理。

Android應用程序是消息驅動(dòng)的,Android系統提供了消息循環(huán)機制Looper,通過(guò)Looper和Handler實(shí)現消息循環(huán)機制。

Android消息循環(huán)是針對線(xiàn)程的(每個(gè)線(xiàn)程都可以有自己的消息隊列和消息循環(huán))。在A(yíng)ndroid系統中,Looper負責管理線(xiàn)程的消息隊列(Message Queue)和消息循環(huán)。

3  MessageQueue

Message類(lèi)用于存放消息中的數據,在通信時(shí)負責相關(guān)信息的存放和傳遞,類(lèi)似于一個(gè)實(shí)體對象。

MessageQueue顧名思義就是消息隊列,它是采用單鏈表的數據結構來(lái)存儲消息列表,用來(lái)存放通過(guò)Handler發(fā)過(guò)來(lái)的Message,按照先進(jìn)先出的順序執行。

4 Handler 的一般用法 

Activity 中創(chuàng )建一個(gè)Handler,然后在子線(xiàn)程中發(fā)送消息。

public class MainActivity extends AppCompatActivity {  private TextView tv_text;
private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 1: // 把UI線(xiàn)程發(fā)送來(lái)的消息顯示到屏幕上 tv_text.setText("what=" + msg.what + ", " + msg.obj); break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv_text = findViewById(R.id.tv_text); // 在UI線(xiàn)程中開(kāi)啟一個(gè)子線(xiàn)程 new Thread(new Runnable() { @Override public void run() { // UI線(xiàn)程發(fā)消息 Message msg = Message.obtain(); msg.what = 1; msg.obj = "向UI線(xiàn)程中發(fā)送消息!"; // 向子線(xiàn)程中發(fā)送消息 handler.sendMessage(msg); } }).start();    }}

5 Handler 的另一種用法  需要注意

子線(xiàn)程中創(chuàng )建的Handler,然后從主線(xiàn)程向子線(xiàn)程中發(fā)送消息。

public class MainActivity extends AppCompatActivity {    private Handler handler;    private TextView tv_text;

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv_text = findViewById(R.id.tv_text); // 在UI線(xiàn)程中開(kāi)啟一個(gè)子線(xiàn)程 new Thread(new Runnable() { @Override public void run() { // 在子線(xiàn)程中初始化一個(gè)Looper對象 Looper.prepare(); handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 1: // 把UI線(xiàn)程發(fā)送來(lái)的消息顯示到屏幕上 Log.i("info", "what=" + msg.what + ", " + msg.obj); break; } } }; // 把剛才初始化的Looper對象運行起來(lái),循環(huán)消息隊列的消息 Looper.loop(); } }).start();

tv_text.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // UI線(xiàn)程發(fā)消息 Message msg = Message.obtain(); msg.what = 1; msg.obj = "向子線(xiàn)程中發(fā)送消息!"; // 向子線(xiàn)程中發(fā)送消息 handler.sendMessage(msg); } }); }}
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Android中的Handler, Looper, MessageQueue和Thread...
Android中的Handler的機制與用法詳解
Android中的消息機制
Android 消息處理機制:Handler|Message
Android 消息機制(Looper Handler MessageQueue Message)
Android全面解析之由淺及深Handler消息機制
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久