思路大致是这样的:
1.用户手动输入(模拟服务器发来的消息),将用药提醒时间存入SQLITE数据库,同时,每隔2分钟的间隔录入一个时间点,持续录入15个(即30分钟),每隔10分钟的间隔录入一个时间点,持续录入9个(即90分钟),共计2小时,24个标记位状态都列为0;
2.如果到了时间点,响起闹铃,用户取消,所有的标志位都重新置为1;
3.如果到了SQLITE录入时间点3小时以后的时间,所有的标志位重新置为0;
4.监听进程一直获取当前的时间,如果当前的时间到了数据库记录的时间点,并且标志位是0,则会响起闹铃。
将来的扩展:
1.数据库要增加用户字段,因为一个报警设备有多个用户,并且每个用户最多可以设置三个时间点,入库过程之中是这样的存储结构。
id time user
0 13:43 zzk
1 13;45 tom
2 20:00 tom
3 21:00 tom
2.时间点存储如下所示,根据不同的用户,分别新建不一样的文件:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="10:01">1</string>
<string name="10:03">1</string>
<string name="10:23">1</string>
<string name="09:53">1</string>
<string name="09:51">1</string>
<string name="10:13">1</string>
<string name="09:41">1</string>
<string name="11:13">1</string>
<string name="11:23">1</string>
<string name="11:33">1</string>
<string name="10:53">1</string>
<string name="11:03">1</string>
<string name="10:33">1</string>
<string name="10:43">1</string>
<string name="09:39">1</string>
<string name="09:37">1</string>
<string name="09:35">1</string>
<string name="09:33">1</string>
<string name="09:43">1</string>
<string name="09:57">1</string>
<string name="09:45">1</string>
<string name="09:55">1</string>
<string name="09:47">1</string>
<string name="09:49">1</string>
<string name="09:59">1</string>
</map>
DB工具包:
package com.zzk.util;
/* import相关class */
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DailyBgDB extends SQLiteOpenHelper
{
/* 变量声明 */
private final static String DATABASE_NAME = "dailyBG_db";
private final static int DATABASE_VERSION = 1;
private final static String TABLE_NAME = "dailySetting_table";
public final static String FIELD1 = "DailyId";
public final static String FIELD2 = "DailyTm";
public SQLiteDatabase sdb;
/* 构造符 */
public DailyBgDB(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSI