zoukankan      html  css  js  c++  java
  • 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常用的一个方法小结

         相信这些方法大家都不会感到陌生,在Handler的API中都是可以查阅到的。现小结如下:

    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字段的消息
    以上为转载博友:http://www.cnblogs.com/fuly550871915/archive/2015/10/18/4889428.html
    更详细介绍,待续
  • 相关阅读:
    垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
    自考感悟,话谈备忘录模式
    [每日一题] OCP1z0-047 :2013-07-26 alter table set unused之后各种情况处理
    Java实现 蓝桥杯 算法提高 p1001
    Java实现 蓝桥杯 算法提高 拿糖果
    Java实现 蓝桥杯 算法提高 拿糖果
    Java实现 蓝桥杯 算法提高 求arccos值
    Java实现 蓝桥杯 算法提高 求arccos值
    Java实现 蓝桥杯 算法提高 因式分解
    Java实现 蓝桥杯 算法提高 因式分解
  • 原文地址:https://www.cnblogs.com/ll-ouyang/p/6736635.html
Copyright © 2011-2022 走看看