位置: 编程技术 - 正文

Android闹钟 AlarmManager的使用(Android闹钟服务)

编辑:rootadmin
转自:  AlarmManager这个类提供对系统闹钟服务的访问接口。

推荐整理分享Android闹钟 AlarmManager的使用(Android闹钟服务),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:Android闹钟代码,Android闹钟软件,Android闹钟通知,Android闹钟代码,Android闹钟代码,Android闹钟代码,Android闹钟服务,Android闹钟通知,内容如对您有帮助,希望把文章链接给更多的朋友!

  你可以为你的应用设定一个在未来某个时间唤醒的功能。

  当闹钟响起,实际上是系统发出了为这个闹钟注册的广播,会自动开启目标应用。

  注册的闹钟在设备睡眠的时候仍然会保留,可以选择性地设置是否唤醒设备,但是当设备关机和重启后,闹钟将会被清除。

  在alarm的receiver的onReceive()方法被执行的时候,Alarm Manager持有一个CPU唤醒锁,这样就保证了设备在处理完广播之前不会sleep。

  一旦onReceive()方法返回,Alarm Manager就会释放这个锁,表明一些情况下可能onReceive()方法一执行完设备就会sleep。

  如果你的alarm receiver中调用了Context.startService(),那么很可能service还没起来设备就sleep了。

  为了阻止这种情况,你的BroadcastReceiver和Service需要实现不同的唤醒锁机制,来确保设备持续运行到service可用为止。

  注意:Alarm Manager主要是用来在特定时刻运行你的代码,即便是你的应用在那个特定时刻没有跑的情况。

  对于常规的计时操作(ticks, timeouts, etc),使用Handler处理更加方便和有效率。

  另:从API 开始,alarm的机制都是非准确传递,操作系统将会转换闹钟,来最小化唤醒和电池使用。

  有一些新的API会支持严&#;准确的传递,见 setWindow(int, long, long, PendingIntent)和setExact(int, long, PendingIntent)。

  targetSdkVersion在API 之前应用仍将继续使用以前的行为,所有的闹钟在要求准确传递的情况下都会准确传递。

闹钟Demo

  Android Api demos中就有关于闹钟使用的Demo:

  com.example.android.apis.app.AlarmController

  其中设定了两种闹钟,一种是一次性的,一种是重复的。

Manifest中的声明,process属性

  自定义的receiver,在manifest中声明如下:

  Demo中两个Receiver的onReceive方法中显示了各自的Toast提示,所以不再列出。

  在此讨论一下process属性,它规定了组件(activity, service, receiver等)所在的进程。

  通常情况下,没有指定这个属性,一个应用所有的组件都运行在应用的默认进程中,进程的名字和应用的包名一致。

  比如manifest的package="com.example.helloalarm",则默认进程名就是com.example.helloalarm。

  <application>元素的process属性可以为全部的组件设置一个不同的默认进程。

  组件可以override这个默认的进程设置,这样你的应用就可以是多进程的。

  如果你的process属性以一个冒号开头,进程名会在原来的进程名之后附加冒号之后的字符串作为新的进程名。当组件需要时,会自动创建这个进程。这个进程是应用私有的进程。

  如果process属性以小写字母开头,将会直接以属性中的这个名字作为进程名,这是一个全局进程,这样的进程可以被多个不同应用中的组件共享。

一次性闹钟

重复闹钟

Android闹钟 AlarmManager的使用(Android闹钟服务)

  闹钟设置:

  闹钟取消:

AlarmManager说明

  AlarmManager这个类提供对系统闹钟服务的访问接口。

  对它的获取是通过系统服务:

  Context.getSystemService(Context.ALARM_SERVICE)。

  相关方法说明:

  cancel(PendingIntent operation)方法将会取消Intent匹配的任何闹钟。

  关于Intent的匹配,查看filterEquals(Intent other)方法的说明可知,两个Intent从intent resolution(filtering)(Intent决议或过滤)的角度来看是一致的,即认为两个Intent相等。即是说,Intent的action,data,type,class,categories是相同的,其他的数据都不在比较范围之内。

  set(int type, long triggerAtMillis, PendingIntent operation)方法将会设置一个闹钟。

  注意:对于计时操作,可能使用Handler更加有效率和简单。

  设置闹钟的时候注意:

  1.如果声明的triggerAtMillis是一个过去的时间,闹钟将会立即被触发。

  2.如果已经有一个相同intent的闹钟被设置过了,那么前一个闹钟将会取消,被新设置的闹钟所代替。

  注意这里说的intent相同指的都是Intent在 filterEquals(Intent)的定义下匹配。

  闹钟是一个广播,接收器需要自己定义和注册,注册使用动态注册( registerReceiver(BroadcastReceiver, IntentFilter) )或者静态注册(<receiver> tag in an AndroidManifest.xml file)都可以。

  setRepeating(int type, long triggerAtMillis, long intervalMillis, PendingIntent operation)方法将会设置一个重复性的闹钟。

  比set方法多了一个间隔参数。

  type的类型是四种:

  ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP, RTC, RTC_WAKEUP.

  区分的是时间标准和是否在睡眠状态下唤醒设备。

  具体查看官方文档吧不再详细解释啦。

实例

  比如要设置一个每晚:唤醒的重复闹钟:

参考资料

  AlarmManager:

  

  闹钟Demo解析:

  

Android的图片,字符串,demin,color,以及Array,boolean,Integer资源的使用-android学习之旅(五十四) 总体介绍颜色值的定义定义字符串,颜色,尺寸资源字符串颜色资源尺寸资源使用字符串,颜色,尺寸资源boolean的定义与使用整形常量的定义与使用数

WebView加载本地加载网络资源 Androidwebview使用详解1.打开网页时不调用系统浏览器,而是在本WebView中显示:复制代码mWebView.setWebViewClient(newWebViewClient(){@OverridepublicbooleanshouldOverrideUrlLoa

打造一个全命令行的Android构建系统 IDE都是给小白程序员的,大牛级别的程序员一定是命令行控,终端控,你看大牛都是使用vim,emacs就一切搞定这话说的虽然有些绝对,但是也不无道理,

标签: Android闹钟服务

本文链接地址:https://www.jiuchutong.com/biancheng/374412.html 转载请保留说明!

上一篇:android 一个绚丽的loading动效分析与实现!

下一篇:Android的图片,字符串,demin,color,以及Array,boolean,Integer资源的使用-android学习之旅(五十四)(android图片库)

  • 股东个人房产转入公司契税
  • 小规模纳税人出售使用过的汽车
  • 采购暂估的处理方式
  • 劳务公司计税税率
  • 购买厂房需要交土地使用税吗
  • 特许权使用费是什么意思
  • 劳务公司劳务协议范本
  • 年初未分配利润和年末未分配利润的关系
  • 非税收入票据能报销吗
  • 公司退款给客户怎么写
  • 生产经营所得税怎么申报
  • 存货盘盈属于什么活动
  • 印花税少提了怎么办
  • 公司的日常开销开发票怎么写
  • 不同项目的进项税可以抵销项税吗
  • 报企业所得税的利润总额怎么填
  • 董事费如何计算个人所得税
  • 营改增后,纳税人转让房地产
  • 营改增后如何纳税
  • 待转销项税额结转分录
  • 研发人员的工会经费计入研发费用吗
  • 工程施工成本发票未到会计分录及账务处理
  • 公司购买办公用品300元,以现金支付,购入后即被领用
  • 个人将租来的房子转租如何交税
  • 出口货物国际运输流程图
  • 1697510816
  • 收到以前年度退回的企业所得税怎么做账
  • 主体有哪些
  • 印花税是按开票金额还是收入
  • 超市打折优惠
  • downloadplus.exe是什么进程 作用是什么 downloadplus进程是安全的吗
  • 公司买了一辆二手汽车,怎么入账
  • 研发费用的支出类型有哪些
  • 未取得发票的工程预付款怎么入账
  • php和py
  • 最早的滑盖手机,摄像头可以自动旋转
  • 最高像素的镜头是多少
  • PHP:imageistruecolor()的用法_GD库图像处理函数
  • 马勒舞曲
  • canvas软件教程
  • 其他非流动资产包括哪些
  • win11设置项改中文
  • 没有发票的支出可以扣除企业所得税么
  • 应收账款贷款怎么做
  • 确认收入与结转成本会计分录怎么写
  • 工商年报资产状况纳税总额怎么填
  • python的基本风格
  • 政府专项基金是什么
  • 长期股权投资的核算方法
  • 银行承兑汇票进行贴现理财
  • 提供学历教育服务取得收入免征增值税的有
  • 公司注销后实收资本要交税吗
  • 帮员工购买意外险怎么记到分录
  • 海关被税没有发票
  • 存货周转率多少算低
  • 一般纳税人进项票是普票可以抵扣吗
  • 研发支出属于什么要素
  • 收到投资款如何申报印花税
  • 河道工程修建维护管理费何时开始停征?
  • 半成品是指正在各生产阶段加工的产品
  • 公司房租没有发票不入账税务怎么处理
  • 汇票本票支票的联系
  • 建筑企业材料费能否加计扣除
  • 物业管理企业应设置代管基金和代收款项账户
  • 一个完整的活动策划方案范文
  • sql server常用
  • esxi6.7克隆
  • windowsxp2
  • win8怎么添加打印机到电脑上
  • win10预览版怎么安装
  • win7系统待机设置
  • linux的web服务器
  • Extjs中使用extend(js继承) 的代码
  • Android studio 打包apk后卡在首屏
  • android零基础入门教程
  • js函数详解
  • 国家税务总局2019年45号公告解读
  • 重庆经开区属于哪个大区
  • 增值税发票勾选操作流程
  • 小微企业印花税减半政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设