-
handler,looper,messageQueue,查看全部
-
handler,looper,messageQueue,查看全部
-
為什么只能通過handler機制更新UI查看全部
-
UI Thread 里面 postDelayed(Runnable, Long); 開啟更新 Runnable 里面 postDelayed(Runnable, Long); 定時更新查看全部
-
/** * 更新UI方法一:Handler.post(Runnable) */ private void updateUi1() { handler.post(new Runnable() { @Override public void run() { textView.setText("handler.post"); } }); } /** * 更新UI方法二:Handler.sendMessage(Message) */ private void updateUi2() { Message message = Message.obtain(); message.obj = "handler.sendMessage"; handler.sendMessage(message); } /** * 更新UI方法三:runOnUiThread(Runnable) */ private void updateUi3() { runOnUiThread(new Runnable() { @Override public void run() { textView.setText("runOnUiThread"); } }); } /** * 更新UI方法四:view.post(Runnable) */ private void updateUi4() { textView.post(new Runnable() { @Override public void run() { textView.setText("view.post"); } }); }查看全部
-
此時拋出的異常就是:在非主線程當中不能更新UI查看全部
-
Handler主要是用來:1,更新UI 2,處理消息查看全部
-
public class MyThread extends Thread { /** * 與子線程相關的Handler */ public Handler handler; @Override public void run() { Looper.prepare();//消息隊列準備 handler = new Handler(){ @Override public void handleMessage(Message msg) { System.out.println("currentThread:" + Thread.currentThread()); } }; Looper.loop();//循環處理消息 } }查看全部
-
handler負責發送消息; Looper負責接收Handler發送的消息,并直接把消息回傳給handler自己; MessageQueue就是一個存儲消息的容器;查看全部
-
通過Callback攔截消息,Callback的handleMessage返回true,則不會執行Handler.handleMessage。 Handler handler = new Handler(new Callback(){ bool handleMessage(Message){ } }){ void handleMessage(Message){ } };查看全部
-
Handler.removeCallbacks(Runnable);查看全部
-
Message message = Message.obtain();查看全部
-
非UI線程在主線程中進行,為什么加了睡眠不能了(內容還不了解)查看全部
-
handler概念原理不是很清楚查看全部
-
handler負責發送消息 looper負責接收handler發送的消息,并把消息傳回給handler messagequeue就是一個存儲信息的容器查看全部
舉報
0/150
提交
取消