Android重复报警调度问题
2014-12-19 10:01
281 查看
我需要在android项目中调度一个重复的报警,可能发生在任何一天,比如周一,比如每周四,或者在下一个周末。 并需要把调度的周期数据保存到数据库中。
我的问题时,我如何配置并保存,我的初步想法是使用七个位置的int数字,并根据位置判断是否需要报警。
有其他的方式吗?
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人 整理发布,转载须标明出处。
我的问题时,我如何配置并保存,我的初步想法是使用七个位置的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人 整理发布,转载须标明出处。
相关文章推荐
- Android新手之旅(13) listview中数据重复的问题
- Android jar包中文件重复添加问题
- Android ListView滑动过程中图片显示重复错乱闪烁问题解决
- Android中的Toast重复显示的问题
- Android ListView滑动过程中图片显示重复错乱闪烁问题解决
- Android开发中Activity切换导致的onCreate重复执行的问题
- Android ListView滑动过程中图片显示重复错乱闪烁问题解决
- Android_AsyncTask详解及其应用(三)_图片错位以及AsyncTask重复创建的问题
- android中Toast重复显示问题解决
- [Android] ListView中getView的原理+如何在ListView中放置多个item + android中ListView多次刷新多次重复执行getView的问题另解
- android中Toast重复显示问题解决
- android中ListView多次刷新多次重复执行getView的问题另解
- Android 消息机制 进程调度问题
- Android ListView滑动过程中图片显示重复错乱闪烁问题解决
- Android ListView滑动过程中图片显示重复错乱闪烁问题解决
- Android ListView 重复调用getView问题
- Android中notification点击进入新activity重复的问题
- Android_AsyncTask详解及其应用(三)_图片错位以及AsyncTask重复创建的问题
- Android自动化测试之Monkeyrunner解决ID重复问题
- Android自动化测试之Monkeyrunner解决ID重复问题