Я использую настраиваемое событие для хранения данных в базе данных, у меня есть предмет, описание, дата и время. Можно ли установить будильник на основе даты и времени, вставленных в базу данных? Я пытаюсь получить все даты и время, чтобы совпасть с текущим днем и точным временем. Вы знаете, как это сделать?Как установить будильник на основе даты и времени, сохраненных в базе данных Android
ответ
Да, вы можете сделать это, используя класс BroadcastReceiver в android. Вы должны искать и читать.
Прежде всего, вам нужно получить дату с db.
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);
}
Я хочу просто настроить базовый аварийный сигнал, который запускается только тогда, когда пользователь находится в приложении, и установленная дата из моей базы данных sqlite. В этом случае нет необходимости в настройке AlarmManager? По-видимому, все, что нужно, это использование Handler с таймером и потоком. Тем не менее, я не вижу примеров Handler в stackoverflow. Пожалуйста, порекомендуйте. – AJW
Q: 'Это можно установить будильник на основе даты и времени, вставленных в базу данных? A: ** Да, это **. –