android alarmmanager进程,Android中使用AlarmManager需注意设置进程属性
Android中使用AlarmManager需注意设置进程属性
在Android中,AlarmManager提供了不受休眠状态的系统定时功能,其一般使用方法如下。
1、创建一个BroadcastReceiver类的子类,接收定时器事件:
public class MyReceiver extends BroadcastReceiver {
......
}
2、在AndroidMenifest.xml中定义上述广播事件接收类的定义:
3、在程序中在需要时设置定时器:
Intent intent = new Intent(context,MyReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP , SystemClock.elapsedRealtime() + ms, pendingIntent);
经过ms毫秒之后,MyReceiver会被调用,从而实现定时触发。
但是,上述实现存在一个问题:如果设置定时器的进程被杀死之后,定时器事件就不会触发。而在Android中,系统在需要时会自动终止后台进程,因此在定时过程中,进程被杀死的可能性是非常之大的,特别是在一些内存较少的设备中,基本上后台进程所设置的定时器很难被触发。
为了让定时器在进程被终止后还能触发,需要对上述实现做一个小的修改:在AndroidMefest.xml中如下定义广播接收类:
android alarmmanager进程,Android中使用AlarmManager需注意设置进程属性相关推荐
- android关于控件中setTag(key,Object)的设置的相关问题
setTag () 是 Android 的 View 类中很有用的一个方法,可以用它来给控件附加一些信息,在很多场合下都得到妙用. 所以抛出IllegalArgumentException 的原因就在 ...
- Android Studio 4.2 中Button的Backgroud背景设置默认为蓝紫色且无法修改的问题,及Button控件中英文字母全部默认显示为大写的解决方法
Button背景色无法修改 问题简述 在修改Button的背景颜色时,始终无法修改颜色为设置的颜色,且颜色始终为默认的蓝紫色: <Buttonandroid:id="@+id/btn_ ...
- linux编程两个子进程,Linux中fork同时创建多个子进程的方法
怎么创建多个进程呢?我说那还不容易,看下边代码: //省略必要头文件 int main() { pid_t pid[2]; int i; printf("This is %d\n" ...
- linux进程通信中有名管道的特点,linux进程通信之(四):有名管道的读与写
前面我们说了无名管道,下面我们来说说有名管道,请看下面一段代码: fifo_write.c: #include#include#include#include#include#include#incl ...
- linux中杀死指定进程,Linux中通过 kill命令 杀死指定进程
一 杀死指定进程 现知道有一个curl线程正在运行,需要杀死 anggang@barry$ curl -y 30 -Y 1 -m 300 -x 8.8.8.8:808 -o html_baidu h ...
- html设置无效字符,使用innerHTML属性向head中插入字符时报“无法设置 innerHTML 属性。 该操作的目标元件无效”的错误...
向head中动态插入script文件,代码如下: var sc = document.createElement("script"); sc.src = "//www.c ...
- 设置java进程名称_如何为Java程序设置进程名称? - java
如果启动了Java程序,它将在系统进程中监视名称java.许多Java程序很难区分.因此,如果存在设置名称的方法,它将很好地显示在过程监视器中.我知道这在不同的操作系统上可能会有所不同. 一个简单的方 ...
- java中setStroke_Java调用setStroke()方法设置笔画属性的语法 原创
默认情况下,Graphics 绘图类使用的笔画属性是粗细为1个像素的正方形,而Java2D的Graphics2D类可以调用setStroke()方法设置笔画的属性,如改变线条的粗细.虚实和定义线段端点 ...
- php文本框的属性,在PHP中,为文本框设置“name”属性的方法是() 答案:为不同文本框表单元素分别设置不同的“name”属性值...
因谓某零件者当力论,材之则当称RP0.600MPa二>,有四种材之则与刘性足曰,若只图则,何种材宜?.俟:RP0.二二1800MPa,A = 2% 以何项不属孙富谓杜十娘之恶意与言()耳:南归, ...
最新文章
- ios手机怎么连接adb命令_手机蓝牙怎么连接汽车蓝牙放音乐,车载蓝牙播放器怎么用...
- 如果有一天程序员再也不忙了
- xshell 打开文件跳转到最后_xshell的快捷键(非常实用)
- Drupal 7中 page.tpl.php 的可用变量
- 利用JEXL实现动态表达式编译
- vue-cli3使用svg图标的详细步骤
- 【JEECG dubbo专题】Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- 输出前k大的数(信息学奥赛一本通-T1235)
- linux下maxwell安装教程,完美起航-Maxwell采集binlog系列(二)-Linux系统安装MySQL
- 关于公司通过CMMI3级认证
- 几种常用的视频接口(端子)
- ArcGIS加载Excel数据连接到数据库失败的解决办法
- 电机正反转的远程计算机控制,plc控制电机正反转原理图
- Vue2在使用Element-UI的分页组件遇到的问题(如PageSize,PageNum等)
- 查找算法——adjacent_find
- 智能对话系统:Unit对话API
- vscode连接寒武纪开发容器
- 【密码岛OJ】1753 马走日题解
- word2016修改批注名字
- 申请澳洲八大,IB成绩多高才有胜算?