android定时循环,Android AlarmManager实现定时循环后台任务
这篇文章使用AlarmManager实现了Android定时后台循环任务。使用场景:项目需要app每隔一段时间就去服务端请求一次接口,从而更新本地保存的信息。
AlarmManager简介
AlarmManager是Android中常用的一种系统级别的提示服务,在特定的时刻为我们广播一个指定的Intent。简单的说就是我们设定一个时间,然后在该时间到来时,AlarmManager为我们广播一个我们设定的Intent,通常我们使用 PendingIntent。
项目功能简介:
AlarmService模拟后台任务,定时发起广播
AlarmReceive启动AlarmService,达到循环启动Service的效果
通过Service和Receiver的死循环,确保后台任务不被系统杀死。
1.AlarmService类
/**
* 一个定时任务
*/
public class AlarmService extends Service {
/**
* 每1分钟更新一次数据
*/
private static final int ONE_Miniute=60*1000;
private static final int PENDING_REQUEST=0;
public AlarmService() {
}
/**
* 调用Service都会执行到该方法
*/
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//这里模拟后台操作
new Thread(new Runnable() {
@Override
public void run() {
Log.e("wj","循环执行了,哈哈."+ System.currentTimeMillis());
}
}).start();
//通过AlarmManager定时启动广播
AlarmManager alarmManager= (AlarmManager) getSystemService(ALARM_SERVICE);
long triggerAtTime=SystemClock.elapsedRealtime()+ONE_Miniute;//从开机到现在的毫秒书(手机睡眠(sleep)的时间也包括在内
Intent i=new Intent(this, AlarmReceive.class);
PendingIntent pIntent=PendingIntent.getBroadcast(this,PENDING_REQUEST,i,PENDING_REQUEST);
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,triggerAtTime,pIntent);
return super.onStartCommand(intent, flags, startId);
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
}
2 AlarmReceive类
public class AlarmReceive extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
//循环启动Service
Intent i = new Intent(context, AlarmService.class);
context.startService(i);
}
}
3 启动Service
public void startService(View view){
Intent intent=new Intent(this, AlarmService.class);
startService(intent);
}
别忘了AndroidMainfest中注册广播和服务:
android:name=".service.AlarmService"
android:enabled="true"
android:exported="true"/>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持找一找教程网。
android定时循环,Android AlarmManager实现定时循环后台任务相关推荐
- android alarmmanager后台,Android AlarmManager实现定时循环后台任务
这篇文章使用AlarmManager实现了Android定时后台循环任务.使用场景:项目需要app每隔一段时间就去服务端请求一次接口,从而更新本地保存的信息. AlarmManager简介 Alarm ...
- android提醒功能,android service实现循环定时提醒功能
人每天都要喝8杯水才能保持健康,于是苦逼的程序员总是一遍代码就忘了时间,于是我突发奇想能不能开发一个apk能够实现固定的间隔时间定时提醒我要喝水了呢? apk基本功能: 1)能够设置间隔时间 2)在a ...
- android 定时更新banner图片,Android 用banner简单实现图片无限循环
直接上图 不知道怎么放动态图. 实现步骤 1.导入引入所需要的包implementation 'com.youth.banner:banner:1.4.10' implementation 'com. ...
- Android 系统定时管理器AlarmManager的使用
2019独角兽企业重金招聘Python工程师标准>>> 1.什么是AlarmManager? 按照Alarm+Manager的拼写可知,这是一个定时管理器,不能称为定时器,或者闹钟之 ...
- android 定时闹钟逻辑,Android 定时执行任务 AlarmManager的使用(可用于闹钟开发)...
Android 定时执行任务 AlarmManager的使用(可用于闹钟开发) 2011年7月13日加注:所有的定时任务在手机重启后会消失,如果需要重启后继续用,可以加个开机自启,然后重新设置. Al ...
- Xamarin.Android通过闹钟(AlarmManager)实现定时功能
目录 1.说明 2.效果 2.1 实现效果 2.2 功能说明 3.代码实现 3.1 定义广播接收器 3.2 layout文件 3.3 Activity代码 4.代码下载 5.其他说明 6.1 其他说明 ...
- android 定时静音,Android实现定时自动静音小助手
定时静音助手的实现方法,供大家参考,具体内容如下 背景 突发奇想,刚好这学期刚上安卓课程,想设计一个时间助手.工作.学习中经常会被突如其来的电话所打扰,在上班,上课时这突如其来的铃声会惹来别人的反感, ...
- android后台通知,Android后台定时提醒功能实现
前提:考虑到自己每次在敲代码或者打游戏的时候总是会不注意时间,一不留神就对着电脑连续3个小时以上,对眼睛的伤害还是挺大的,重度近视了可是会遗传给将来的孩子的呀,可能老婆都跟别人跑了. 于是,为了保护眼 ...
- android notification 定时显示,Android编程使用Service实现Notification定时发送功能示例...
本文实例讲述了android编程使用service实现notification定时发送功能.分享给大家供大家参考,具体如下: /** * 通过启动或停止服务来管理通知功能 * * @descripti ...
最新文章
- TypeScript 素描 - 函数
- “分库分表 ?选型和流程要慎重,否则会失控
- boost::mp11::mp_replace_at相关用法的测试程序
- ●BZOJ 3129 [Sdoi2013]方程
- Linux-pthread如何设置线程的优先级
- Mybatis缓存模块(一)BlockingCache
- offset函数的高级用法_数据验证(数据有效性)结合Offset函数 的综合用法
- leetcode(153)寻找旋转排序数组中的最小值
- cloud 调用列表并返回数据操作代码
- PHP Mysql-简介
- 创建第二个 vlan network vlan101 - 每天5分钟玩转 OpenStack(96)
- HTML5七夕情人节表白网页制作【流星动画3D相册】HTML+CSS+JavaScript
- 佳能MP258mp259清零软件
- 中国AI专利数稳居第一!世界各国AI专利深度盘点
- GAE—图自编码器/Graph RNN/Graph RL
- java fx scen,很好的JavaFX2.0基础教程
- 运行Map Reduce报错Got exception: java.net.ConnectException: Call From master.localdomain/127.0.0.1 to
- php 大转盘抽奖概率 角度,在线抽奖大转盘和概率计算
- 标题相似度算法_一个简单的计算文章相似度功能!
- GBase8s数据库以 RESTRICT 方式或 CASCADE 方式删除安全标签对象
热门文章
- linux和python的关系_Python、Linux与我的缘分
- python 程序停止打印日志_停止 Spring Boot 服务的几种优雅姿势
- 【转】我的CV之路第一篇:ITK是啥?
- 【转】算法导论学习笔记 一 分治算法
- 浅谈Mysql 表设计规范
- opencv获取图片像素坐标_利用OpenCV从图片中提取矩形并标注坐标(室内平面地图)(一)
- php有哪些开源社区,PHP开源社区
- 【牛客 - 272B】Xor Path(树上操作,路径异或值)
- *【HDU - 1506】【POJ - 2559】Largest Rectangle in a Histogram(单调栈或动态规划)
- php7 获取文件类型,太简单了!PHP获取文件扩展名的7中方法