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
    更详细介绍,待续
  • 相关阅读:
    五个问题,三大策略,手把手教你定制App性能监控方案
    Oracle外部表详解 转
    EBS 一揽子采购协议 转载
    xsl特殊符号输出总结 转
    设计模式目录
    控制CPU使用率,让它画一条弧线
    C# 俄罗斯方块
    程序员能力矩阵
    如何在IIS上搭建WAP网站
    利用SQL2005的row_number()重新写了个自定义分页存储过程
  • 原文地址:https://www.cnblogs.com/ll-ouyang/p/6736635.html
Copyright © 2011-2022 走看看