Android 如何根据我的 sqlite 数据库中设置的时间设置警报?

标签 android alarmmanager time-format

我有一个应用程序可以从名为任务的网络服务接收数据,然后将任务保存到我的 SQLite 数据库中。我接下来要做的是查询这些任务,然后根据设置的触发时间设置警报。假设我有一个任务名称“feed”,并且要触发的任务时间是“09:00 AM”(我的时间使用“h:i A”格式)。如何将此时间格式转换为 alarmManager 可以读取的格式?

public void setAlarm(int uniqueid, int duration) {
    Intent intent = new Intent(this, AlarmReceiver.class);
    intent.setAction(AlarmReceiver.ACTION_ALARM_RECEIVER);//my custom string action name
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, uniqueid, intent, 0);
    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

    alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()
            + (duration * 1000), pendingIntent);
    Toast.makeText(this, "Alarm set for " + uniqueid, Toast.LENGTH_LONG).show();
}

最佳答案

试试这个,看看它是否适合你

Date mDate = new Date();
Calendar mCalendar = Calendar.getInstance();
mCalendar.setTime(mDate);
mCalendar.add(Calendar.MINUTE, 2);

long alarmInTwoMinutes = mCalendar.getTimeInMillis();

alarmManager.set(AlarmManager.RTC_WAKEUP, alarmInTwoMinutes, pendingIntent);

在特定时间更新设置

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 9);
calendar.set(Calendar.MINUTE, 30);

long alarmInTwoMinutes = calendar.getTimeInMillis();

为了重复,你可以使用

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, alarmInTwoMinutes, pendingIntent)

关于Android 如何根据我的 sqlite 数据库中设置的时间设置警报?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35759626/

相关文章:

sql-server - SSIS 数据错误地进入 excel 目的地

Android Studio : java. io.IOException: 现有连接被远程主机强行关闭

java - 在 Android 中以本地化格式从字符串中单独显示日期和时间

android - 如何在水平滚动的单行 TextView 中设置长字符串

java - sleep VS AlarmManager.set AND AlarmManager.setRepeating VS Handler

android - android 中的警报管理器和通知

android - 服务、IntentService、BroadcastReceiver 还是 AlarmManager?

java - 如何使用 LocalTime.parse 解析任何格式的时间?

Android - 每天凌晨 4 点运行服务

android - 添加Android WorkManager时,ListenableFuture已经存在程序类型