设为首页 加入收藏

TOP

Android定时锁屏功能实现(AlarmManager定时部分)(一)
2019-08-24 00:04:19 】 浏览:78
Tags:Android 定时 功能 实现 AlarmManager 部分

菜鸟入坑记——第一篇

关键字:AlarmManager

一、AlarmManager简介:

        参考网址:https://www.jianshu.com/p/8a2ce9d02640
        参考网站:https://www.runoob.com/w3cnote/android-tutorial-alarmmanager.html

        推荐此网址:https://www.jianshu.com/p/d69a90bc44c0

        了解android低电耗模式:https://developer.android.google.cn/training/monitoring-device-state/doze-standby.html
        AlarmManager的作用:在特定的时刻为我们广播一个指定的Intent。
        即:自己设定一个时间,当系统时间到达此时间时,AlarmManager自动广播一个我们设定好的Intent,指向某个Activity或Service。
        注意:① AlarmManager主要用来在某个时刻运行你的代码,即使你的APP在那个特定的时间并没有运行。

二、获得AlarmManager实例对象:
        AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

三、方法:

        setExact(int type, long startTime, PendingIntent pi); 一次性闹钟,执行时间精确,为精确闹钟

        参数解释:此部分参考网站https://www.jianshu.com/p/8a2ce9d02640

四、程序设计:

        (1)类型type

        此处选用闹钟类型为AlarmManager.RTC:闹钟在睡眠状态下不可用,该状态下闹钟使用绝对时间(当前系统时间),状态值为1。

        (2)开始时间startTime

        由于通过SP获得的时间为String类型,需先转换为long类型,且时间单位为ms

 1 /**
 2      * String类型转换成date类型
 3      * strTime: 要转换的string类型的时间,
 4      * formatType: 要转换的格式yyyy-MM-dd HH:mm:ss
 5      * //yyyy年MM月dd日 HH时mm分ss秒,
 6      * strTime的时间格式必须要与formatType的时间格式相同
 7      */
 8     public static Date stringToDate(String strTime, String formatType){
 9         KLog.d("进入stringToDate");
10         try {
11             SimpleDateFormat formatter = new SimpleDateFormat(formatType);
12             Date date = null;
13             date = formatter.parse(strTime);
14             return date;
15         }catch (Exception e){
16             return null;
17         }
18     }
19     /**
20      * String类型转换为long类型
21      * .............................
22      * strTime为要转换的String类型时间
23      * formatType时间格式
24      * formatType格式为yyyy-MM-dd HH:mm:ss//yyyy年MM月dd日 HH时mm分ss秒
25      * strTime的时间格式和formatType的时间格式必须相同
26      */
27     public static long stringToLong (String strTime,String formatType){
28         KLog.d("进入stringToLong");
29         try{
30             //String类型转换为date类型
31             Date date = stringToDate(strTime, formatType);
32             Log.d(TAG,"调用stringToDate()获得的date:" + date);
33             if (date == null) {
34                 return 0;
35             }else {
36                 //date类型转成long类型
37                 long Hour = date.getHours();
38                 long Min = date.getMinutes();
39                 long TimeLong = Hour*60*60*1000 + Min*60*1000;
40                 Log.d(TAG,"stringToLong()获得的Hour:" + Hour + " h");
41                 Log.d(TAG,"stringToLong()获得的Min:" + Min + " min");
42                 Log.d(TAG,"stringToLong()获得的TimeLong:" + TimeLong + " ms");
43                 return TimeLong;
44             }
45         }catch (Exception e){
46             return 0;
47         }
48     }

 

        Java Date、String、Long三种日期类型之间的相互转换

        参考网址:http://www.blogjava.net/weishuangshuang/archive/2012/09/27/388712.html

        成功获得睡眠时间(

首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇解决adb网络连接中出现的“由于目.. 下一篇Flutter学习笔记(15)--Material..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目