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更详细介绍,待续
相关文章
相关标签/搜索