handler实现定时任务功能,每4秒轮播图播映

             我们知道handler的功能有两个,一个是实现定时任务,另一个是实现主线程和子线程的信息通信,尤其是安卓中耗时操作不能在主线程进行,更新界面操作不能在子线程进行,在这种需求背景下,于是出现了handler+thread的搭配实现子线程读取网络数据,读取完通知主线程更新UI。不过我这一篇写的是handler的定时任务功能。

          首先要了解重点的方法handler类中的postDelayed(Runnable r,long delaymillis)方法。这个方法的作用是延迟delaymillis毫秒执行一次Runnable对象中的run方法部分的代码,把它写成递归的形式就能无限循环下去执行r的run方法代码。此时runnable并没有新开一个线程,它还是在handler所在的线程中执行。

下面是我做的轮播图的小例子的全部代码,在我的手机上运行没有任何问题。

图片:

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.ImageView;

public class handlerImage extends Activity {

	ImageView iView;
	Handler myhandler;
	myRun runnable = new myRun();
	int img[] = { R.drawable.a, R.drawable.b, R.drawable.timg };//三张图片
	int i = 1;
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.img);
		iView = (ImageView) findViewById(R.id.imageView1);
		myhandler = new Handler();
		myhandler.postDelayed(runnable, 2000);
	}

	class myRun implements Runnable {
		@Override
		public void run() {
			// TODO Auto-generated method stub
			iView.setImageResource(img[i % 3]);
			i++;
			myhandler.postDelayed(runnable, 4000);//每4000毫秒执行一次run方法
		}
	}
}

另外附上xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />
</LinearLayout>

   大学毕业没多久,又是第一次接触handler,了解还不深,如果有错误希望大家在评论区指正。

转载于:https://my.oschina.net/u/3630543/blog/1632767

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值