- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android6.0 设备Idle状态(二)AlarmManagerService setIdleUntil接口
Android6.0 设备Idle状态(二)AlarmManagerService setIdleUntil接口
一、set接口对flag中带了FLAG_IDLE_UNTIL的Alarm处理
先来看AlarmManager中:
[java] view plain copy 在CODE上查看代码片派生到我的代码片
public void setIdleUntil(int type, long triggerAtMillis, PendingIntent operation) {
setImpl(type, triggerAtMillis, WINDOW_EXACT, 0, FLAG_IDLE_UNTIL, operation, null, null);
}
这个接口就是在flag中带了FLAG_IDLE_UNTIL。
我们再来看下AlarmManagerService中的set函数:
[java] view plain copy 在CODE上查看代码片派生到我的代码片
private final IBinder mService = new IAlarmManager.Stub() {
@Override
public void set(int type, long triggerAtTime, long windowLength, long interval, int flags,
PendingIntent operation, WorkSource workSource,
AlarmManager.AlarmClockInfo alarmClock) {
final int callingUid = Binder.getCallingUid();
if (workSource != null) {
getContext().enforcePermission(
android.Manifest.permission.UPDATE_DEVICE_STATS,
Binder.getCallingPid(), callingUid, AlarmManager.set);
}
// No incoming callers can request either WAKE_FROM_IDLE or
// ALLOW_WHILE_IDLE_UNRESTRICTED -- we will apply those later as appropriate.
flags = ~(AlarmManager.FLAG_WAKE_FROM_IDLE
| AlarmManager.FLAG_ALLOW_WHILE_IDLE_UNRESTRICTED);
// Only the system can use FLAG_IDLE_UNTIL -- this is used to tell the alarm
// manager when to come out of idle mode, which is only for DeviceIdleController.
if (callingUid != Process.SYSTEM_UID) {//如果不是系统应用不能拥有该flag
flags = ~AlarmManager.FLAG_IDLE_UNTIL;
}
不是系统应用不能应有该flag。注释的说明也是这个flag只给DeviceIdleController用。
二、setImplLocked函数
继续分析setImplLocked函数
[java] view plain copy 在CODE上查看代码片派生到我的代码片
private void setImplLocked(Alarm a, boolean rebatching, boolean doValidate) {
if ((a.flagsAlarmManager.FLAG_IDLE_UNTIL) != 0) {//是该flag
// This is a special alarm that will put the system into idle until it
您可能关注的文档
- 经典名言谚语英文翻译quotes and idioms(打印版).doc
- 翻译技巧教案.doc
- 全国大学生英语竞赛历年选择题及其答案.doc
- 2014年中考英语总复习综合测评3.doc
- 托福英语——让步段写作步骤.docx
- 幼师英语 Unit 2 教案.doc
- 0389 高三英语-苏州中学2015届高三上学期期中考试英语试题.doc
- 实验报告C程序的运行环境.doc
- 压力容器基本英汉对照.docx
- markdown语法.docx
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
文档评论(0)