Android重复报警调度问题

本文介绍了一种在Android应用中配置和保存重复定时任务的方法。利用按位与运算,可以通过一个字节来表示一周中需要触发任务的具体日期。这种方式不仅节省存储空间,也方便后续检查哪些日子任务应该被激活。

我需要在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人 整理发布,转载须标明出处。            

【评估多目标跟踪方法】9个高度敏捷目标在编队中的轨迹和测量研究(Matlab代码实现)内容概要:本文围绕“评估多目标跟踪方法”,重点研究9个高度敏捷目标在编队飞行中的轨迹生成与测量过程,并提供完整的Matlab代码实现。文中详细模拟了目标的动态行为、运动约束及编队结构,通过仿真获取目标的状态信息与观测数据,用于验证和比较不同多目标跟踪算法的性能。研究内容涵盖轨迹建模、噪声处理、传感器测量模拟以及数据可视化等关键技术环节,旨在为雷达、无人机编队、自动驾驶等领域的多目标跟踪系统提供可复现的测试基准。; 适合人群:具备一定Matlab编程基础,从事控制工程、自动化、航空航天、智能交通或人工智能等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于多目标跟踪算法(如卡尔曼滤波、粒子滤波、GM-CPHD等)的性能评估与对比实验;②作为无人机编队、空中交通监控等应用场景下的轨迹仿真与传感器数据分析的教学与研究平台;③支持对高度机动目标在复杂编队下的可观测性与跟踪精度进行深入分析。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注轨迹生成逻辑与测量模型构建部分,可通过修改目标数量、运动参数或噪声水平来拓展实验场景,进一步提升对多目标跟踪系统设计与评估的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值