《第一行代码》学习笔记39-服务Service(6)
1.Android中定时任务一般有两种实现方式:(1)使用Java API里提供的Timer类;(2)使用Android的Alarm机制。
但是,Timer类有个明显的短板,不太适用于那些需要长期在后台运行的定时任务。
2.为了让电池更加耐用,每种手机都有自己的休眠政策,Android手机会在长时间不操作的情况下自动让CPU进入到
睡眠状态,可能导致Timer类中的定时任务无法正常运行;而Alarm机制具有唤醒CPU功能,可以保证每次需要执行
定时任务时CPU都能正常工作。
3.获取个AlarmManager实例:
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
接下来调用AlarmManager的set()方法,可以设置个定时任务:
long triggerAtTime = SystemClock.elapsedRealtime() + 10 * 1000; //设定个任务在10秒后执行
manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, pendingIntent);
set()方法,第一个参数是整型参数,指定AlarmManager的工作类型,
ELAPSED_REALTIME:定时任务的触发时间从系统开机开始算起,不会唤醒CPU。
ELAPSED_REALTIME_WAKEUP:定时任务的触发时间从系统开机开始算起,会唤醒CPU。
RTC:定时任务的触发时间从1970年1月1日0点算起,不会唤醒CPU。
RTC_WAKEUP:定时任务的触发时间从1970年1月1日0点算起,会唤醒CPU。
4.使用SystemClock.elapsedRealtime()方法可获取到系统开机至今所经历时间的毫秒数,
使用System.currentTimeMillis()方法可获取到1970年1月1日0点至今所经历时间的毫秒数。
5.第二个参数,定时任务触发的时间,以毫秒为单位,这里是传入开机至今的时间或1970年1月1日0点至今的时间,最后再
加上延迟执行的时间。第三个是一个PendingIntent,一般调用getBroadcast()方法来获取一个能够执行广播的PendingIntent。
当定时任务被触发的时候,广播接收器的onReceive()方法可以得到执行。
《第一行代码》学习笔记39-服务Service(6)的更多相关文章
- 《Android第一行代码》笔记
学习Android开发差点儿相同有两年时间了.期间也做了大大小小的一些项目.近来抽出闲暇想把Android基础强化一下,之前在网上看到了郭霖郭大神的几篇博客.从中受益不少.于是花了近一周时间看完了郭神 ...
- 第一行代码阅读笔记---AndroidMainfest.xml分析
按照这本书的指引,我随作者一样创建了一个安卓应用,开始了安卓开发的启程. 找到AndroidMainfest.xml这个文件,打开后看到了我创建的Activity在这个文件里被成功注册,文件内容如下: ...
- Android学习笔记_23_服务Service之AIDL和远程服务实现进程通信以及进程间传递自定义类型参数
一.了解AIDL语言: 在Android中, 每个应用程序都有自己的进程,当需要在不同的进程之间传递对象时,该如何实现呢? 显然, Java中是不支持跨进程内存共享的.因此要传递对象, 需要把对象解析 ...
- Android学习笔记_22_服务Service应用之—与Activity进行相互通信的本地服务
一.启动服务的两种方法方法: 第一种: startService()和stopService()启动关闭服务.适用于服务和Activity之间没有调用交互的情况.如果相互之间需要方法调用或者传递参数 ...
- 第一行代码阅读笔记----显示隐式Intent的基本用法
1.显示Intent意图明显,通过Intent启动另外一个活动,这是安卓中各组件进行交互的一种重要方式.一般用于启动活动,启动服务,发送广播等场景. 实现方法,这里我只说思路,实践还是要自己实操才能明 ...
- 第一行代码阅读笔记---详解分析第一个Android程序
以下是我根据作者的思路,创建的第一个Android应用程序,由于工具强大,代码都自动生成了,如下: package com.example.first_app; import android.os.B ...
- python学习笔记1--python简介和第一行代码编写
一.什么是python? python是一种面向对象,解释型语言,它语法简介,容易学习.本节博客就来说说本人学习python的心得体会. 二.python环境安装 目前python版本有python2 ...
- 20172327 2018-2019-1 《第一行代码Android》第一章学习总结
学号 2018-2019-1 <第一行代码Android>第一章学习总结 教材学习内容总结 - Android系统架构: 1.Linux内核层 Android系统是基于Linux内核的,这 ...
- 通过《第一行代码》学习 Android 开发
第一行代码 Android --第 2 版-- 郭霖 著 第 1 章:开始启程--你的第一行 Android 代码 •1.2 手把手带你搭建开发环境 Android Studio 的安装及配置 A ...
- 20172327 2018-2019-1 《第一行代码Android》第二章学习总结
学号 2017-2018-2 <第一行代码Android>第二章学习总结 教材学习内容总结 - 活动是什么: 活动(Activity)是最容易吸引用户的地方,它是一种可以包含用户界面的组件 ...
随机推荐
- WAJUEJI which home strong!
算法:搜索+优先队列 描述 在一个山沟里,姐弟俩同时考上了大学.但由于家里拮据,所以这并不是什么好消息.父亲对孩子说:我就是砸锅卖铁也要把你们姐俩供出来. 当时的姐姐已经决定放弃上学的机会. 没想到第 ...
- [转]C++ list 类学习笔记
双向循环链表list list是双向循环链表,,每一个元素都知道前面一个元素和后面一个元素.在STL中,list和vector一样,是两个常被使用的容器.和vector不一样的是,list不支持对元素 ...
- VS2010 C++ 优化配置
个人感觉VC6.0太土了,而且有很多bug存在,且微软早就不对其更新.所以,在选择C++编程的时候.使用IDE,VC6.0一段时间以后,我毅然决然的放弃了,觉得还是使用VS2010比较有前途. 但是当 ...
- 【C#编程基础学习笔记】4---Convert类型转换
2013/7/24 技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com [C#编程基础学习笔记]4---Convert类型转换 ...
- table 自动换行
<table border=" align="center" style="table-layout:fixed;word-wrap:break-word ...
- 安全cookie登录状态设计方案
我们知道web是基于HTTP协议传输的,明文传输是极其危险的,随便哪个抓包工具分析下数据包,就over啦,一个加密的传输过程应该包括两部分,一部分为身份认证,用户鉴别这个用户的真伪:另外一部分为数据加 ...
- How to install MP4box on CentOS 6
How to install MP4box on CentOS 6 MP4Box is a MP4 multiplexer. It can import MPEG-4 video, DivX, Xvi ...
- SCM管理器
OpenSCManager 打开SCM管理器 CloseServiceHandle 关闭句柄 CreateService 创建服务 OpenService 打开服务 ControlService 控制 ...
- Jsonp 解决跨域问题
话不多说直接贴代码: $.ajax({ async: false, url: 'http://****.****.com/Handler.ashx?vueId=iwNavpicS2', type: & ...
- 信息安全实验三:privilege-separation
title: privilege-separation date: 2016-01-12 14:40:04 categories: tags: --- Exercise1 In order to ga ...