java - 如何根据保存在数据库android中的日期和时间设置闹钟

标签 java android sqlite events android-alarms

我正在使用自定义事件将数据存储在数据库中,我有主题、描述、日期和时间。是否可以根据插入数据库的日期和时间设置警报?我正在尝试检索所有日期和时间以匹配当天和确切时间。你知道怎么做吗?

最佳答案

首先你需要从数据库中获取日期。

String dateTime = row.getString(row.getColumnIndexOrThrow(COLUMN_INDEX));

这将返回一个字符串,解析它并重新格式化为您的本地格式和时区:

DateFormat yourDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
date = yourDateFormat.parse(dateTime);
} catch (ParseException e) {
Log.e(TAG, "Parsing date time failed", e);
}

现在使用下面的代码设置闹钟

Calendar cal = Calendar.getInstance();
cal.setTime(date);

Calendar current = Calendar.getInstance();
if(cal.compareTo(current) <= 0)
{
//The set Date/Time already passed
    Toast.makeText(getApplicationContext(), "Invalid Date/Time", Toast.LENGTH_LONG).show();
}
else{
    Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0);
    AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent);
    }

关于java - 如何根据保存在数据库android中的日期和时间设置闹钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39428813/

相关文章:

c - rails install pg - 找不到“libpq-fe.h header ”

java - 如何为 ArrayList 中的对象执行 add 方法

java - 通过 Socket 进行流传输

java - 初始化抽象类的一般变体

java - Log4j-2.6.2 基本配置器未配置日志记录级别

android - 显示是/否对话框而不是确定/取消

android - 为本地化 Android 更改语言时出错

android - 如何在android上存储数据以便快速检索

php - 搜索查询不够准确

java - SQLite 插入失败