我是靠谱客的博主 简单水池,最近开发中收集的这篇文章主要介绍android轮播time,android等待、延时切换广告轮播 ScheduledExecutorService服务的使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

创建服务执行,在线程中等待执行相关操作:

protected void StartChangeAd() {

// 当Activity不可见的时候停止切换

if(scheduledExecutorService==null||scheduledExecutorService.isShutdown()){

scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();

// 当Activity显示出来后,等待3秒,每3秒钟切换一次图片显示

scheduledExecutorService.scheduleAtFixedRate(new ScrollTask(), 3, 3, TimeUnit.SECONDS);

}

}

子线程中执行切换任务

private class ScrollTask implements Runnable {

public void run() {

synchronized (main_ad_viewPager) {

currentItem = (currentItem + 1) % imageViews.size();

Message message=new Message();

message.arg1=3;

mainHandler.sendMessage(message); // 通过Handler切换图片

}

}

}

由于子线程中不能做UI操作,通过Handler切换图片

Handler mainHandler = new Handler() {

@Override

public void handleMessage(Message msg) {

super.handleMessage(msg);

switch(msg.arg1){

// 切换当前显示的图片

case 3:

main_ad_viewPager.setCurrentItem(currentItem);

break;

}

}

};

关于ScheduledExecutorService这个服务我的理解也不是很深,查找了一些相关资料。

在ExecutorService的基础上,ScheduledExecutorService提供了按时间安排执行任务的功能,它提供的方法主要有:

schedule(task,initDelay):安排所提交的Callable或Runnable任务在initDelay指定的时间后执行。scheduleAtFixedRate():安排所提交的Runnable任务按指定的间隔重复执行scheduleWithFixedDelay():安排所提交的Runnable任务在每次执行完后,等待delay所指定的时间后重复执行。注意我们可以用TimeUnit来制定时间单位,这也是Java5.0里新的特征,5.0以前的记时单位是微秒,现在可精确到奈秒。关于TimeUnit的枚举常量MICROSECONDS微秒   一百万分之一秒(就是毫秒/1000)MILLISECONDS毫秒   千分之一秒NANOSECONDS毫微秒  十亿分之一秒(就是微秒/1000)SECONDS秒MINUTES分钟HOURS小时DAYS天

其他相关方法可以查阅TimeUnit

的API。

最后

以上就是简单水池为你收集整理的android轮播time,android等待、延时切换广告轮播 ScheduledExecutorService服务的使用的全部内容,希望文章能够帮你解决android轮播time,android等待、延时切换广告轮播 ScheduledExecutorService服务的使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部