android等待、延时切换广告轮播 ScheduledExecutorService服务的使用
2014-07-09 10:34
501 查看
创建服务执行,在线程中等待执行相关操作:
子线程中执行切换任务
由于子线程中不能做UI操作,通过Handler切换图片
关于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。
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。
相关文章推荐
- 使用ScheduledExecutorService延时关闭一个全屏的对话框
- Android中获取正在运行的服务-------ActivityManager.RunningServiceInfo的使用
- ScheduledExecutorService接口的学习和使用
- ScheduledExecutorService的使用
- Android -- service 服务的创建与使用,生命周期,电话监控器
- ScheduledExecutorService的使用
- 使用 ScheduledExecutorService 来替换 Timer
- Android窗口管理服务WindowManagerService切换Activity窗口(App Transition)的过程分析
- 随笔,android使用有米广告服务的方法,即插入广告。
- 调用android非unbind的服务中的方法(不使用bindService启动的服务)
- Android -- service 服务的创建与使用,生命周期
- Android中获取正在运行的服务-------ActivityManager.RunningServiceInfo的使用
- Timer与ScheduledExecutorService 的使用和区别
- 线程池使用之ScheduledExecutorService
- Android之使用bindService启动服务
- Android中获取正在运行的服务:ActivityManager.RunningServiceInfo的使用
- ScheduledExecutorService的使用
- Android窗口管理服务WindowManagerService切换Activity窗口(App Transition)的过程分析
- ScheduledExecutorService定时任务的使用
- 使用ScheduledExecutorService接口实现Web轮询项目