Android重复报警调度问题

文章标签: android-定时
2014-10-14 13:34:02     人阅读    

 

我需要在android项目中调度一个重复的报警,可能发生在任何一天,比如周一,比如每周四,或者在下一个周末。 并需要把调度的周期数据保存到数据库中。


我的问题时,我如何配置并保存,我的初步想法是使用七个位置的int数字,并根据位置判断是否需要报警。

有其他的方式吗?

处理方法

你可以存储单个字节来表示你的需要调度的周,拉用按位与运算值出来。第1位可以代表星期一,第二位 星期二,或者你可以用它来代表天的所有组合,例如:


01100000 - Saturday/Sunday (Weekend)
01110001 - Friday/Saturday/Sunday/Monday (Long weekend)

你需要通过如下方式进行读取值

byte val = 0x71; //01110001
boolean mondayActive = (val & 0x1) == 1;
boolean fridayActive = (val >> 4& 0x1) == 1;

 

 

这是假设你已经熟悉AlarmManager和正在寻找一种机制来跟踪你的报警,你不能用一个单独的报警安排在OP中描述的方式活动。如果你需要模仿的cron在一个单独的任务,可能是看看类似的BuzzBox的SDK。

EDIT write sample
public static final int MONDAY  = 0x01;   //00000001
public static final int TUESDAY = 0x02;   //00000010
public static final int WEDNESDAY = 0x04; //00000100
public static final int THURSDAY = 0x08;  //00001000
public static final int FRIDAY = 0x10;    //00010000
public static final int SATURDAY = 0x20;  //00100000
public static final int SUNDAY = 0x40;    //01000000

//example values to write
int weekend = SATURDAY | SUNDAY; //01100000
int longWeekend = FRIDAY | SATURDAY | SUNDAY | MONDAY; //01110001

//and as per flightplanner's comment, to read
boolean mondayActive = (weekend & MONDAY) == MONDAY;    //false
m
mondayActive = (longWeekend & MONDAY) == MONDAY;        //true


原文地址:http://www.itmmd.com/201410/33.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

找不到选项“Add New Product”   上一篇
下一篇  Android 和ICU 5.0
精彩回复
#1楼    ; [评论人]:ajuan   [发表时间]:2014-12-19 10:00:36

不错,这个解决了我的问题

我要追加问题,请求站长解决!
姓名:       

《程序员app》专门为程序员量身定做!