今天看了下关于关机闹钟的问题,网上看了下资料,对关机闹钟的基本流程大致也算是了解了,

所以就梳理一下

1 启动过程

android有两个闹钟 一个是软件实现的闹种,一个硬件实现的rtc的闹钟

系统关机的时候就通过rtc来通知alarmserver,alarmserver再进行管理,查找,并发送到时间的广播

2 关机时注意点

如果是关机闹铃的话,alarmserver里面保存的队列等都将丢失,所以要到数据库中从新初始化alarmserver。要先主曾系统开机的广播,在系统开机的时候在

上层调用setnextalarm就行了。由此看来刚才出现的标签丢失,关机闹铃无法启动后snooze应该是应用层的,经过验证,发现是机器启动后会把之前的snooze的操作给清除掉,所以我把这一步给关了,也验证通过了。

而另个标签的问题,至今也没有搞定,只是在layout里面加了个假的替代,后来在activitymanager里面居然找到了 控制这个显示的窗口  这个窗口直接设置了 无标题

所以怎么着都无法设置了 。

不明白里面只要从关机闹钟中起来后settitle方法就无用了,虽然能拿到那个内容,但就是不显示title,也就是活关机闹铃启动的时候

应该是改变了title的参数,导致他不能设置title,看了下alrammanagerservice的内容,还是没找到关于这个参数的变化,算了,不找了,替代方案也可以

等以后对系统熟悉后应该会明白原因吧

问题。

以下是粗略的模仿闹钟的工作过程

Android 闹钟机制实现定时任务 复制下来以便后来用

1. 设置闹铃时间(毫秒)

1

private void setAlarmTime(Context context,longtimeInMillis) {

2

AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);

3

Intent intent =newIntent(”android.alarm.demo.action“);

4

PendingIntent sender = PendingIntent.getBroadcast(

5

context,0, intent, PendingIntent.FLAG_CANCEL_CURRENT);

6

intinterval =60*1000;//闹铃间隔, 这里设为1分钟闹一次,在第2步我们将每隔1分钟收到一次广播

7

am.setRepeating(AlarmManager.RTC_WAKEUP, timeInMillis, interval, sender)

8

} 2. 接收闹铃事件广播

1

public class AlarmReceiverextendsBroadcastReceiver {

2

publicvoidonReceive(Context context, Intent intent) {

3

if(”android.alarm.demo.action“.equals(intent.getAction())) {

4

//第1步中设置的闹铃时间到,这里可以弹出闹铃提示并播放响铃

5

//可以继续设置下一次闹铃时间;

6

return;

7

}

8

}

9

} 当然,Receiver是需要在Manifest.xml中注册的:

1

2

3

4

5

3. 重开机后重新计算并设置闹铃时间当然要有一个BootReceiver:

1

public class BootReceiverextendsBroadcastReceiver {

2

publicvoidonReceive(Context context, Intent intent) {

3

String action = intent.getAction();

4

if(action.equals(Intent.ACTION_BOOT_COMPLETED)) {

5

//重新计算闹铃时间,并调第一步的方法设置闹铃时间及闹铃间隔时间

6

}

7

}

8

} 广播都是需要注册的

android 关机闹钟 实现,android 关机闹钟相关推荐

  1. android 关机闹钟 实现,安卓关机闹钟:你所不知道的关机闹钟的背后

    可以通过其他方式实现关机闹钟 事实上大家也大可不必抱怨Android手机或者是iPhone的固执做法,因为目前在Android手机当中,全新的"明"系列摩托罗拉A1680就已经支持 ...

  2. android layout组件,Android UI学习 - Linear Layout, RelativeLayout

    1.一些常用的公共属性介绍 1) layout_width -宽 fill_parent: 宽度和父元素相同,wrap_content: 宽度随本身的内容所调整,或者指定 px值来设置宽 2) lay ...

  3. android:layout_gravity 和 android:gravity 的区别

    gravity 这个英文单词是重心的意思,在这里就表示停靠位置的意思. android:layout_gravity 和 android:gravity 的区别 从名字上可以看到,android:gr ...

  4. Android横向伸缩,Android 实现伸缩布局效果示例代码

    最近项目实现下面的图示的效果,本来想用listview+gridview实现,但是貌似挺麻烦的于是就用flowlayout 来addview实现添加伸缩的效果,实现也比较简单. mainActivit ...

  5. android ble 设备扫描程序,Android应用开发Android 7.0 BLE scan 问题:程序无错但扫描不到BLE设备...

    本文将带你了解Android应用开发Android 7.0  BLE scan 问题:程序无错但扫描不到BLE设备,希望本文对大家学Android有所帮助. < 最近在做毕设,需要几周内从头学起 ...

  6. android window 大小,android popupWindow 中宽度莫名很大,求帮助?

    这个是popupwindow的内容xml(就是放了个ListView): android:layout_width="wrap_content" android:layout_he ...

  7. android radiobutton 分组,Android 第十课——UI RadioButton

    常用基础空组件 5 RadioGroup RadioButton 单选按钮时常用组件之一,但是开发过程中虽然很多地方会用到单选按钮,但是却不会用Android系统提供的原始样式,类似我们在写html时 ...

  8. android单线字体,Android自定义字体

    在main文件夹下,新建assets/fonts文件,添加.otf文件 image.png 字体工具类 import android.app.Application; import android.g ...

  9. mp4 android自动播放,Android 使用VideoView播放MP4的简单实现

    使用VideoView播放MP4 播放示例 实现简单的播放功能,播放手机本地的MP4文件.不依赖任何第三方框架,不添加任何防腐剂. 添加一个系统自带的控制条. 申请权限 读取存储中的MP4文件 准备布 ...

  10. android 虚方法,尝试在空对象引用上调用虚方法’android.view.View android.view.View.getRootView()’...

    我收到这个错误, "Attempt to invoke virtual method 'android.view.View android.view.View.getRootView()' ...

最新文章

  1. 计算机游戏和传统游戏的区别是什么,电竞显示器与普通显示器有什么区别-电脑自学网...
  2. 跑得好好的Java进程,怎么突然就瘫痪了?
  3. php 调用openoffice,PHP调用OpenOffice实现word转PDF的方法
  4. SpringBoot2.1.5 (21)---使用 devtools 热部署
  5. (2) python 使用pd.read_excel 读取excel时,选取某一列为索引
  6. LINUX tar解压到指定目录
  7. 大数据平台层级架构图
  8. 分布式游戏服务器设计
  9. firefox火狐浏览器开启backdrop-filter高斯模糊
  10. PCIe Receiver内部恢复时钟与本地时钟
  11. 文墨绘学任何事物都是发展变化的
  12. 名帖108 鲜于枢 行楷《麻徵君透光古镜歌》
  13. php画梯形,利用css来画出各种样式不同的梯形,html中梯形外框怎么做
  14. VG、PV、PP、LV、LP
  15. 彩票开奖结果查询接口介绍
  16. Elixir GenServer
  17. 产品经理修炼需要注意的七个点
  18. git 撤销上次commit提交
  19. 利用python实现 CAD STEP格式转化为STL格式--update 对整个文件夹下的所有文件进行转换格式
  20. 【计算机图形学】c++ OpenGL Sutherlang-Hodgman 多边形裁剪

热门文章

  1. 后台管理系统项目-登录页-实现步骤
  2. PSIM仿真+C语言(c block)实现PID控制和最小拍控制
  3. 近端串扰与远端串扰分析
  4. sourcetree远端 红色叹号
  5. 域名(DNS)原理及解析过程详解
  6. Android两个app间跳转-deepLink的使用
  7. linux关闭防火墙(临时/永久)
  8. STEP7 200及其仿真器的使用步骤
  9. 简单易用的OKR工具——源目标OKR
  10. 写在前面-数据结构与算法分析