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 ...
随机推荐
- GNS3内网配置虚拟机测试
一.背景:考虑在GNS3内网配置一台虚拟机系统,用于大流量测试. 二.环境: 1.win10系统已安装:GNS3和配套GNS3VM虚拟机(版本号:2.2.7):vmware虚拟机winxp(名称为:W ...
- (linux)Centos 7 xfsdump文件系统的备份和恢复
XFS提供了 xfsdump 和 xfsrestore 工具协助备份XFS文件系统中的数据.xfsdump 按inode顺序备份一个XFS文件系统. centos7选择xfs格式作为默认文件 ...
- jchdl - RTL实例 - And2(结构体的使用)
https://mp.weixin.qq.com/s/qTgeBF9N0mx5UK3xWDb3jg jchdl对Verilog做了增强,增加了用户自定义结构体类型.使用自定义结构体,可以对输入和输 ...
- Redis 入门到分布式 (一)Redis初识
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.Redis特性目录 Redis的特性: 速度快 持久化 多种数据结构 支持多种编辑语言 功能丰富 简 ...
- Java实现 LeetCode 659 分割数组为连续子序列 (哈希)
659. 分割数组为连续子序列 输入一个按升序排序的整数数组(可能包含重复数字),你需要将它们分割成几个子序列,其中每个子序列至少包含三个连续整数.返回你是否能做出这样的分割? 示例 1: 输入: [ ...
- Java实现 LeetCode 637 二叉树的层平均值(遍历树)
637. 二叉树的层平均值 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组. 示例 1: 输入: 3 / \ 9 20 / \ 15 7 输出: [3, 14.5, 11] 解释: 第0层的 ...
- java实现国庆星期日
** 国庆星期日** 1949年的国庆节(10月1日)是星期六. 今年(2012)的国庆节是星期一. 那么,从建国到现在,有几次国庆节正好是星期日呢? 只要答案,不限手段! 可以用windows日历, ...
- python XlsxWriter模块创建aexcel表格
https://blog.csdn.net/qq_41030861/article/details/82148777 安装使用pip install XlsxWriter来安装,Xlsxwriter用 ...
- CentOS7搭建Pacemaker高可用集群(1)
Pacemaker是Red Hat High Availability Add-on的一部分.在RHEL上进行试用的最简单方法是从Scientific Linux 或CentOS存储库中进行安装 环境 ...
- Spring源码之自动装配
我们使用Spring开发过程中经常会用到Autowired注解注入依赖的bean,这部分也是面试的热点问题之一.今天咱们一起来深入研究下自动注入的背后实现原理.首先上一个例子,如下所示: @RestC ...