-
通過handler來實現圖片定時輪播的代碼: public class MainActivity extends Activity { private Handler handler = new Handler(); private ImageView imageView; // 將我們保存在文件夾中的三張圖片進行了實例化 private int[] images = { R.drawable.image1, R.drawable.image2, R.drawable.image3 }; // 創建的下標,用來實現當前是哪張圖片顯示 private int index; // 創建了一個我們自己寫的Runnable的對象 private MyRunnable myRunnbale = new MyRunnable(); class MyRunnable implements Runnable { @Override public void run() { // TODO Auto-generated method stub index++; index = index % 3; imageView.setImageResource(images[index]); // 通過handler的postDelayed的方法,進行定時的執行run方法中的代碼 handler.postDelayed(myRunnbale, 1000); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (TextView) findViewById(R.id.textView1); imageView = (ImageView) findViewById(R.id.imageView1); // 在主線程中執行上面的操作 handler.postDelayed(myRunnbale, 1000); } }查看全部
-
sendMessage sendMessageDelayed post(Runnable) postDelayed(Runnable,long) 圖片切換例子思路 首先搞一個imageview 然后搞三張圖片用數組裝上 在然后搞一個變量在線程中實現++ 并且對3取余 最后用handler.postDelayed(myrunnable,1000);進行更新查看全部
-
handler是android給我們提供用來更新UI的一套機制,也是一套消息處理的機制,我們可以發送消息,也可以通過它來處理消息 Android在設計的時候,就封裝了一套消息創建,傳遞,處理機制,如果不遵循這樣的機制的話,就沒有辦法更新ui信息,也就是不使用handler會拋出異常消息查看全部
-
handler負責發送消息,loper負責接收數據,且回調給handler查看全部
-
我導錯包,導致修復不了問題查看全部
-
handler 兩個作用 :1.更新UI 2.消息處理查看全部
-
消息創建,查看全部
-
面試用:在非主線程是否可以更新UI 答:當剛啟動還沒有onResume的時候可以,即onCreate里面 ViewRootImp是在onResume方法中初始化的,在onCreate方法中創建線程并執行,此時還沒有初始化ViewRootImp查看全部
-
android中更新UI的幾種方式: 1.handler.sendMessage(Message msg) handler.sendEmptyMessage(int what) 2.handler.post(Runnable run) 3.runOnUiThread(Runnable run) 4.textView.post(Runnable run)查看全部
-
關于Callback返回值的true和false 源碼中 /* public void dispatchMessage(Message msg) { if (msg.callback != null) { handleCallback(msg); } else { if (mCallback != null) { //如果返回值為false,下面的handler本身的handleMessage(msg)才有機會被執行 if (mCallback.handleMessage(msg)) { return; } } handleMessage(msg); } }*/查看全部
-
handler執行的線程中是可以直接訪問UI線程的; handler是可以發送,創建處理Message方法 的 handler匿名內部類中的handleMessage()方法可以處理Message Message message=handler.obtainMessage()得到系統消息(自動定位到handler就不用handler.sendMessage()) 或者 Message message=new Message() message.arg1=xx message.get2=xx message.obj=xxx handler發送的消息 handler.sendMessage(message) message.sendToTarget()對于已經綁定好handler的message查看全部
-
handler的四種使用的方法: sendMessage sendMessageDelayed post(Runnable) postDelayed(Runnable,long)查看全部
-
為什么需要使用handler: Android在設計的時候,就封裝了一套消息創建,傳遞,處理機制,如果不遵循這樣的機制的話,就沒有辦法更新ui信息,也就是不使用handler會拋出異常消息查看全部
-
handler是android給我們提供用來更新UI的一套機制,也是一套消息處理的機制,我們可以發送消息,也可以通過它來處理消息查看全部
-
在ViewRootImpl(用來更新UI的一些判斷處理邏輯,在onResume()方法中調用)沒有實例化的時候是不會check是否是主線程,也就是說,在非UI線程中是可以更新UI的,但是為了線程安全的原因,系統會強制要求只能在主線程中更新UI。判斷是否在主線程更新UI的程序要ViewParent(ViewRootImpl的一個實現類)不為空的情況下,但是第一個程序ViewParent還沒有實例化,所以沒有調用哪個checkThread的方法來判斷是否在主線程,所以可以更新。查看全部
舉報
0/150
提交
取消