Я использую AlarmManager, чтобы установить будильник, и я хочу сохранить его id в моем sqlite db, всякий раз, когда я устанавливаю будильник, он срабатывает немедленно, я googled решение, но did'nt найти в соответствии с моим требованием, может быть, я получать неправильную дату и время из моего времени выбора даты виджетов,
Я использую даты и времени сборщиков, как:Выбор времени выбора времени для диспетчера аварийных сигналов?
final DatePicker datePicker = (DatePicker)dialog.findViewById(R.id.datePicker);
final TimePicker timePicker = (TimePicker)dialog.findViewById(R.id.timePicker);
затем появляется Dialoge, я изменить дату и время, а затем затем получить его как:
Calendar calendar = Calendar.getInstance();
calendar.set(datePicker.getYear(), datePicker.getMonth(), datePicker.getDayOfMonth(),
timePicker.getCurrentHour(), timePicker.getCurrentMinute(), 0);
timeSetForAlert = calendar.getTimeInMillis()/1000;
И затем я передаю это сервисному обработчику, как,
Intent myIntent = new Intent(thisContext, MyReceiver.class);
myIntent.putExtra("timeSetForAlert", timeSetForAlert);
pendingIntent = PendingIntent.getBroadcast(thisContext, 0, myIntent,0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC, timeSetForAlert, pendingIntent);
Я пропуская широковещательный приемник здесь, который принимает намерение и начать обслуживание сигнализации, в то время как служба сигнализации как:
public void onStart(Intent intent, int startId)
{
super.onStart(intent, startId);
long timeSetForAlert = intent.getLongExtra("timeSetForAlert", 0);
mManager = (NotificationManager) thisContext.getSystemService(thisContext.NOTIFICATION_SERVICE);
Intent intent1 = new Intent(thisContext,MainActivity.class);
Notification notification = new Notification(R.drawable.ic_launcher,"This is a test message!", timeSetForAlert);
intent1.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP| Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingNotificationIntent = PendingIntent.getActivity(thisContext,0, intent1,PendingIntent.FLAG_UPDATE_CURRENT);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.setLatestEventInfo(thisContext, "Notification..", "This is a test message!", pendingNotificationIntent);
mManager.notify(startId, notification);
Toast.makeText(thisContext, startId+"", Toast.LENGTH_SHORT).show();
}
Пожалуйста, укажите:
1) - Почему сигнализация срабатывает сразу
2) - где я должен сохранить его в моем дб
oops ..! @nikhil, Это сработало, но немного проблема, когда я установил два предупреждения, он перезаписывает первую, любую идею? он должен быть в классе AlarmService –