android 6.0 以上在doze模式精确定时
public static void start12hAlarm() {
int seconds = TIMERLENGTH;
ECMLog.i_ecms(CLASS_TAG, " start12hAlarm is called ." );
AlarmManager manager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(mContext, cls);
intent.setAction(mAction);
PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0,intent, PendingIntent.FLAG_UPDATE_CURRENT);
long triggerAtTime = SystemClock.elapsedRealtime();
manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime + seconds* 1000, pendingIntent);
if (Build.VERSION.SDK_INT >= 23) {
manager.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime + seconds* 1000, pendingIntent);
} else if (Build.VERSION.SDK_INT >= 19) {
manager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime + seconds* 1000, pendingIntent);
} else {
manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime + seconds* 1000, pendingIntent);
}
}
public static void stop12hAlarm() {
ECMLog.i_ecms(CLASS_TAG, " stop12hAlarm is called ." );
AlarmManager manager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(mContext, cls);
intent.setAction(mAction);
PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0,intent, PendingIntent.FLAG_UPDATE_CURRENT);
manager.cancel(pendingIntent);
}
定时器到了发送广播:在广播中进行业务操作
/*
* 文件名:MainBroadcastReceiver.java
* 版权:版权所有 (C) 中国电科30所三部
* 描述:
* 修改人: chen.qiang
* 修改时间:2015/10/16
* 修改内容:新增
*/
package com.cetcs.ecmapplication.ecms; import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent; import com.cetcs.ecmapplication.mqtt.Model;
import com.cetcs.ecmcommon.ECMLog;
import com.cetcs.jniencardmanager.JniEnCardManager; /**
* <功能简述>
* <功能详述>
*
* @author liucheng
* @version 0.1, 2016/9/5
*/
public class AlarmEventReceiver extends BroadcastReceiver {
private static String CLASS_TAG = "AlarmEventReceiver";
@Override
public void onReceive(Context context, Intent intent) {
ProcessBroadcast server = new ProcessBroadcast(context);
String action = intent.getAction();
ECMLog.i_ecm(CLASS_TAG ," receive a broadcast@@@@: " + action);
if(server != null) {
server.startSecApps();
}
if(action == null){
return;
}
Utils.startEcmsByBroadcast(context);
if("android.intent.action.12h_alarm".equals(intent.getAction())){
ECMLog.i_ecm(CLASS_TAG ," onReceive 12h_alarm");
if(server != null){
server.BootReportAlarmBroadcast();
}
}
if(BootReportAgent.mSCSAction.equals(intent.getAction())){
ECMLog.i_ecm(CLASS_TAG ,"onReceive android.intent.action.scs_socket alarm");
Model.getInstance().getGlobalThreadPool().execute(new Runnable() {
@Override
public void run() {
try {
int rst = JniEnCardManager.getInstance().isScsSoketException();
ECMLog.i_ecm(CLASS_TAG ,"onReceive isScsSoketException() is :"+rst);
} catch (Exception e) {
e.printStackTrace();
ECMLog.i_ecm(CLASS_TAG ,"onReceive isScsSoketException() exception :"+ e.getMessage());
}
}
}); }
}
}
android 6.0 以上在doze模式精确定时的更多相关文章
- Android 5.0 版本 USB 调试模式打开方法
Android 4.2 版本 USB 调试模式打开方法 1. 进入“设置”页面,点击“关于平板电脑”.见下图红色方框. 2. 疯狂点击“版本号”,见下图红色方框,直到出现“您现在处于开发者模式!” ...
- Android 7.0 Nougat牛轧糖 发布啦
Android 7.0 Nougat牛轧糖 发布啦 Android 7.0 Nougat 牛轧糖于本月发布了. 从官方blog里可以了解到这个版本的新特性. Android 7.0 从2016年8月正 ...
- Android 6.0(棉花糖)新特性
1.支持4K显示 Android 6.0本身已经支持4K显示,会通过一定优化形式使4K内容更加清晰. 2. 启动验证 (更完整的应用权限管理) Android 6.0在开机时会自动运行验证代码,检测设 ...
- Android基础知识之屏幕兼容模式
原文:http://android.eoe.cn/topic/android_sdk 注意:如果你在低于安卓3.0的版本上进行应用开发,但其在更大屏幕的设备(比如平板电脑)上显示正常时,你就需要禁用屏 ...
- Android 5.0 最应该实现的8个期望
毫无疑问,Android 5 将是令人兴奋的操作系统,因为 Android4.0 至 4.4 版本之间并没有显著的差异,显然谷歌会在 5.0 版本中进行一些较大幅度的革新.那么,代号为“柠檬芝士蛋糕” ...
- Android Doze模式启用和恢复
从Android 6.0(API level 23)开始,Android提出了两个延长电池使用时间的省电特性给用户.用户管理可以在没有充电的情况下管理app的行为.当用户一段时间没有使用手机的时候,D ...
- Android Doze模式源码分析
科技的仿生学无处不在,给予我们启发.为了延长电池是使用寿命,google从蛇的冬眠中得到体会,那就是在某种情况下也让手机进入类冬眠的情况,从而引入了今天的主题,Doze模式,Doze中文是打盹儿,打盹 ...
- 微信5.0 Android版飞机大战破解无敌模式手记
微信5.0 Android版飞机大战破解无敌模式手记 转载: http://www.blogjava.net/zh-weir/archive/2013/08/14/402821.html 微信5.0 ...
- android 7.0 学习笔记(一)
导读 增强的Doze模式 后台优化 Data Saver 一.增强的Doze模式 Android N对Android M引进的Doze模式进行了进一步的增强,变化体现在两个方面.一方面是降低了进入Do ...
随机推荐
- Beta冲刺——5.25
这个作业属于哪个课程 软件工程 这个作业要求在哪里 Beta冲刺 这个作业的目标 Beta冲刺 作业正文 正文 github链接 项目地址 其他参考文献 无 一.会议内容 1.解决小程序之前的遗留问题 ...
- Rocket - util - IDPool
https://mp.weixin.qq.com/s/Pe7FGKzfRufzzYDrl0fQ7g 介绍IDPool的实现. 1. 基本介绍 实现从ID池中分配和释放ID的功能. ...
- 高性能可扩展mysql 笔记(二)用户模型设计、用户实体表结构设计、设计范式
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.用户模型设计 电商羡慕中用户模型的设计涉及以下几个部分: 以电商平台京东的登录.注册页面作为例: ...
- Jquery拓展方法
拓展JQuery一般有两个方法: 1.全局拓展 比如 $.ajax()就是全局函数 拓展方法: Jquery.extend(); 比如: $.extend({ hello:function(mynam ...
- (Java实现) 洛谷 P1051 谁拿了最多奖学金
题目描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上 ...
- Java实现 LeetCode 673 最长递增子序列的个数(递推)
673. 最长递增子序列的个数 给定一个未排序的整数数组,找到最长递增子序列的个数. 示例 1: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列,分别是 [1, 3, 4, ...
- Java实现 蓝桥杯VIP 算法训练 整数平均值
题目描述 编写函数,求包含n个元素的整数数组中元素的平均值.要求在函数内部使用指针操纵数组元素,其中n个整数从键盘输入,输出为其平均值. (样例说明:5为输入数据的个数,3 4 0 0 2 是以空格隔 ...
- Java实现 蓝桥杯VIP 算法训练 瓷砖铺放
[题目描述]: 有一长度为N(1< =N< =10)的地板,给定两种不同瓷砖:一种长度为1,另一种长度为2,数目不限.要将这个长度为N的地板铺满,一共有多少种不同的铺法? 例如,长度为4的 ...
- Android如何使用Notification进行通知
有两张图片素材会放在末尾 activity代码,和XML布局 package com.example.myapplication; import androidx.appcompat.app.AppC ...
- Java实现预排序
1 问题描述 在计算机科学中,预排序是一种很古老的思想.实际上,对于排序算法的兴趣很大程度上是因为这样一个事实:如果列表是有序的,许多关于列表的问题更容易求解.显然,对于包含了排序操作,这种算法的时间 ...