Android中设置定时器目前来看有两种方法,一种是基于handler的postDelayed方法,另一种是使用AlarmManager类。根据Android官方的描述

Note: The Alarm Manager is intended for cases where you want to have your application code run at a specific time, even if your application is not currently running. For normal timing operations (ticks, timeouts, etc) it is easier and much more efficient to useHandler.

也就是说使用第一种handler方法相对简单,在一个应用中定时执行任务的话,使用handler方法比较方便,并且由于是在同一个类中,类的一些变量值都可以在需要定时执行的任务中直接获得。而使用alarm manager的主要场合是在定期唤醒一些系统中本来没有打开的,或者其他的应用。

1.基于handler的postDelayed方法

private Handler handler = new Handler();private Runnable runnable = new Runnable() {    public void run()     {         // Do the stuff         handler.postDelayed(this, 1000);    }};
runnable.run();

通过handler.removeCallbacks(runnable)停止定时执行任务。

http://stackoverflow.com/a/11640073/17678002.

2.基于AlarmManager的方法

在Android的API demo中提供了alarmservice使用的详细的例子,在模拟器中可以直接看到apidemo的例子。在eclipse中可以直接导入sdk/samples目录下的ApiDemos工程。如果sdk下没有samples目录,可以通过Android sdk Manager来安装Samples for SDK.

Android中设置定时器Android中设置定时器


apidemo中和alarm相关的页面如上面三个图所示。图中最上面显示的是activity所在ApiDemos整个应用中的路径。和alarm相关的都在App/Alarm路径下,一共有两个activity,一个是Alarm Controller,一个是Alarm Service。Alarm Controller展示的是通过AlarmManager实现指定未来某个时间执行一项功能、定时执行的设置与清除这三项功能。Alarm Service展示的是通过AlarmManager实现定时打开service的设置于清楚的两项功能。

Android中设置定时器

通过alarm关键字进行搜索,可以发现ApiDemos工程中所有的和alarm相关的类如上图所示。一共有5个类。其中AlarmController.java,AlarmService.java对应主的Activity和AlarmManager的设置。AlarmService_Service.java是AlarmService.java定时唤醒功能所对应的service类。

http://developer.android.com/reference/android/app/AlarmManager.html

更多相关文章

  1. 面试例题6:两种方法将图像显示在View上
  2. Android NDK报错(Eclipse)及解决方法
  3. Android 更新UI的两个方法
  4. Android之UI学习篇七:ImageView实现适屏和裁剪图片的功能
  5. 收藏Android下bitmap内存限制OUT OF MEMORY的方法
  6. Android 代码自动提示功能
  7. 【Android】Android SDK下载和更新失败的解决方法!!!

随机推荐

  1. Jquery基于ActiveX的批量上传
  2. ie8下jQuery动画没有ie7流畅,是浏览器性能
  3. 使用jquery实现点击按钮弹出层和点击空白
  4. js jquery 关闭弹出页面 并刷新父页面(win
  5. jquery怎么深复制?
  6. jquery done()不能获取外部变量
  7. Fullcalendar:为什么日历在页面上出现两次
  8. jquery-validation-1.13.1 自定义验证正
  9. ECharts + Jquery 做大屏展示
  10. jquery中获取相邻元素相关的命令:next()、