Handler的簡單理解

複製代碼

 1 package com.example.handldertest;
 2 
 3 import android.os.Bundle;
 4 import android.os.Handler;
 5 import android.widget.ImageView;
 6 import android.app.Activity;
 7 
 8 
 9 public class MainActivity extends Activity {
10     
11     private ImageView img;
12     //實例化圖片數組,存放的是他們的id
13     private int[] imgs = {R.drawable.ali,R.drawable.girl,R.drawable.q};
14     private int index = 0;
15 
16     private Handler mHandler = new Handler();
17     private MyRunnable mr = new MyRunnable();
18     
19     class MyRunnable implements Runnable{
20 
21         public void run() {
22           index++;
23           index = index%3;
24           
25           img.setImageResource(imgs[index]);
26           
27           mHandler.postDelayed(mr, 1000);
28             
29         }
30 
31     }
32     
33     protected void onCreate(Bundle savedInstanceState) {
34         super.onCreate(savedInstanceState);
35         setContentView(R.layout.activity_main);
36         img = (ImageView) findViewById(R.id.imgview);
37         
38         mHandler.postDelayed(mr, 1000);
39     }
40    
41 }
     而後咱們是怎麼首先圖片輪播的呢?其實很簡單,咱們在主線程中postDelayed一個mr對象,而後再在mr對象的run方法中,然它將本身再postDelayed,這樣子它就無限循環下去了。那麼run方法也就無限循環了,咱們只要在run方法中執行ImageView的圖片顯示邏輯便可。運行程序,效果以下圖:

(2)Handler經常使用的一個方法小結html

     相信這些方法你們都不會感到陌生,在Handler的API中都是能夠查閱到的。現小結以下:android

postDelayed(Runnable r, long delayMillis)    延遲多少秒後直接會執行Runnable裏的run方法
sendEmptyMessage(int what) 直接發送一個只包含what字段的消息
sendMessage(Message msg) 發送一個Message對象
removeCallbacks(Runnable r) 從Handler中移除一個Runnable對象
removeMessages(int what) 從Handler中移除一個what字段的消息
sendEmptyMessage(int what) 直接發送一個只包含what字段的消息
sendMessage(Message msg) 發送一個Message對象
removeCallbacks(Runnable r) 從Handler中移除一個Runnable對象
removeMessages(int what) 從Handler中移除一個what字段的消息
sendMessage(Message msg) 發送一個Message對象
removeCallbacks(Runnable r) 從Handler中移除一個Runnable對象
removeMessages(int what) 從Handler中移除一個what字段的消息
removeCallbacks(Runnable r) 從Handler中移除一個Runnable對象
removeMessages(int what) 從Handler中移除一個what字段的消息removeMessages(int what)
以上爲轉載博友:http://www.cnblogs.com/fuly550871915/archive/2015/10/18/4889428.html更詳細介紹,待續
相關文章
相關標籤/搜索