я хочу показать уведомление с помощью диспетчера тревог, но уведомление не появляется в указанное время, уведомление вместо этого появляется при сохранении данных
здесь мой код метода запланированного уведомления
private void scheduleNotification(Notification notification, Calendar calendar) {
Intent notifIntent = new Intent(this, NotificationPublish.class);
notifIntent.putExtra(NotificationPublish.NOTIFICATION_ID, 0);
notifIntent.putExtra(NotificationPublish.NOTIFICATION, notification);
PendingIntent pendingIntent = PendingIntent.getBroadcast(AddTaskActivity.this, 0, notifIntent, PendingIntent.FLAG_CANCEL_CURRENT);
// long futureInMilis = SystemClock.elapsedRealtime() + time;
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarmManager.setAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
}
и это метод getNotification
private Notification getNotification(String task) {
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setContentTitle(task);
builder.setContentText("Go Start");
builder.setSmallIcon(R.drawable.ic_launcher_background);
return builder.build();
}
Вот набор календаря
public void onDateSelected(Date date) {
String date3 = sdf.format(date);
// time = date.getTime();
calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, date.getYear());
calendar.set(Calendar.MONTH, date.getMonth());
calendar.set(Calendar.DAY_OF_MONTH, date.getDay());
calendar.set(Calendar.HOUR_OF_DAY, date.getHours());
calendar.set(Calendar.MINUTE, date.getMinutes());
edt_datepicker.setText(date3);
}
}).display();
и этот onClick для сохранения данных
public void onClick(View view) {
if (view == btn_add_task){
addTask();
scheduleNotification(getNotification(task),calendar);
onBackPressed();
finish();
}
, и это класс BroadCastReceiver
public class NotificationPublish extends BroadcastReceiver {
public static String NOTIFICATION_ID = "notification_id";
public static String NOTIFICATION = "notification";
@Override
public void onReceive(final Context context, Intent intent) {
Log.d("ONRECEIVE", "CALLED");
NotificationManager manager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = intent.getParcelableExtra(NOTIFICATION);
int id = intent.getIntExtra(NOTIFICATION_ID, 0);
manager.notify(id, notification);
}
}
Импорт календаря - java.util.Calendar
Я искал и пробовал один, он все еще не работает, мне нужна ваша помощь
Спасибо