Android的闹钟实现机制很简单,只需要调用AlarmManager.set()将闹铃时间记录到系统中,当闹铃时间到后,系统会给应用程序发送广播,我们只需要去注册广播接收器就可以了。
本文分三部分讲解如何实现闹钟:
目录:
1. 设置闹铃时间;
2. 接收闹铃事件广播;
3. 重开机后重新计算并设置闹铃时间;
正文:
1. 设置闹铃时间(毫秒)
private void setAlarmTime(Context context, long timeInMillis) {
AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(”android.alarm.demo.action“);
PendingIntent sender = PendingIntent.getBroadcast(
context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
int interval = 60 * 1000;//闹铃间隔, 这里设为1分钟闹一次,在第2步我们将每隔1分钟收到一次广播
am.setRepeating(AlarmManager.RTC_WAKEUP, timeInMillis, interval, sender)
}
2. 接收闹铃事件广播
public class AlarmReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
if (”android.alarm.demo.action“.equals(intent.getAction())) {
//第1步中设置的闹铃时间到,这里可以弹出闹铃提示并播放响铃
//可以继续设置下一次闹铃时间;
return;
}
}
}
当然,Receiver是需要在Manifest.xml中注册的:
<receiver android:name="AlarmReceiver">
<intent-filter>
<action android:name="android.alarm.demo.action" />
</intent-filter>
</receiver>
3. 重开机后重新计算并设置闹铃时间
当然要有一个BootReceiver:
public class BootReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_BOOT_COMPLETED)) {
//重新计算闹铃时间,并调第一步的方法设置闹铃时间及闹铃间隔时间
}
}
}
当然,也需要注册:
<receiver android:name="BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
闹钟实现原理其实就这么多,至于具体的细节比如闹铃时间存储及计算,界面显示及闹铃提示方式,每个人的想法做法都会不一样,就不赘述
- 浏览: 344391 次
最新评论
-
dannyzhuang:
朋友你好,问一下 你这个问题,你已经解决了吗,我也遇到了类似的 ...
长按后ANR异常LOG -
ohuan:
我这样处理,为什么 "keyCode/ XXX &q ...
Android学习札记4:PopupWindow在设置setFocusable后监听返回键盘事件
相关推荐
主要为大家详细介绍了Android闹钟机制实现定时任务功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
android中定时有很多种是实现,常见的Handler 与Thread的结合,handler.postDelayed ,以及要使用的AlarmManger 等都可以实现定时任务的执行,但是使用场景却大不相同,这里主要是怎么用AlarmManager实现定时任务。...
采用闹钟机制实现一个定时任务,里面附有详细解释,傻瓜都明白嗒~
NULL 博文链接:https://haiyang08101.iteye.com/blog/2302634
这个是一个完美实现闹钟的实例,模仿手机系统的闹钟实现方式,定时设置时间,设置星期1-7,设置震动和延迟时间,设置闹铃。可以定时的提醒用户
闹钟是基于Android studio开发的一款打扰睡觉的app,功能实现闹铃、添加、删除
定时开关机完整源码,framework 层修改请看文章 https://blog.csdn.net/u012932409/article/details/100524321
Android 闹铃定时器实现,注意:此demo在原生Android系统上没问题,但在国内大多数定制机上,如果关闭后台,闹铃一般不会触发 ╮(╯_╰)╭
android 每日定时功能,简单闹铃实现,重复闹铃实现。
使用AlarmManager来实现定时提醒,它提供了一种访问系统闹钟服务的方式。在全局中,达到设定的时间, 在它上面注册的一个Intent将会被广播,接着启动相应的应用程序,可以通过自定义Receiver来实现。 首先要在...
本文将讲解一下如何使用AlarmManager实现定时提醒功能。 闹钟配置 周期闹钟 Intent intent = new Intent(); intent.setAction(GlobalValues.TIMER_ACTION_REPEATING); PendingIntent sender = PendingIntent....
闹钟的简单实现,只有显示时间和设置闹钟。 AlarmView package com.example.lenovo.clock2; import android.app.AlarmManager; import android.app.PendingIntent; import android.app.TimePickerDialog; import ...
android 闹钟定时操作,可以一次性定时,也可以重复使用定时操作。
android使用闹钟程序来实现定时功能
利用android传感器实现手机摇一摇解除闹铃,让你不再继续赖床
android定时提醒,调用系统闹钟程序定时,定时时间到了,响铃通知