Планирование ежедневного уведомления, ожидающие намерения срабатывает, но уведомление не отображается - PullRequest
0 голосов
/ 23 марта 2020

ПО моей основной деятельности я вызываю метод для установки AlarmManager. Цель - запускать ежедневные уведомления в определенное время. Однако я не могу заставить его работать. Ниже я добавил весь код, который я использую.

    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    Intent alarmIntent = new Intent(MainActivity.this, NotificationReciever.class);

    PendingIntent pendingIntent = PendingIntent.getBroadcast(  this, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    alarmIntent.setData((Uri.parse("custom://"+System.currentTimeMillis())));
    alarmManager.cancel(pendingIntent);

    Calendar alarmStartTime = Calendar.getInstance();
    Calendar now = Calendar.getInstance();
    alarmStartTime.set(Calendar.HOUR_OF_DAY, 7);
    alarmStartTime.set(Calendar.MINUTE, 15);
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, alarmStartTime, AlarmManager.INTERVAL_DAY, pendingIntent);
    Log.d("Alarm","Alarms set");

Это onReceive моего NotificationReciever.class

    Intent service1 = new Intent(context, NotificationService1.class);
    service1.setData((Uri.parse("custom://"+System.currentTimeMillis())));
    context.startService(service1);

и моего NotificationService1.class

public class NotificationService1 extends IntentService {

Notification notification;
public NotificationService1() {
    super("NotificationService1");
}

public NotificationService1(String name, Notification notification) {
    super(name);
    this.notification = notification;
}

@Override
protected void onHandleIntent(Intent intent) {

    Context context = this.getApplicationContext();
    Intent mIntent = new Intent(this, howtoActivity.class);

    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, mIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    Notification.Builder builder = new Notification.Builder(this);
    Uri soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
    notification = new Notification.Builder(this)
            .setContentIntent(pendingIntent)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setAutoCancel(true)
            .setPriority(Notification.PRIORITY_MAX)
            .setContentTitle("Notif title")
            .setContentText("Text").build();
    notification.flags |= Notification.FLAG_AUTO_CANCEL | Notification.FLAG_SHOW_LIGHTS;
    notification.defaults |= Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE;
    NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    int NOTIFICATION_ID = 1;
    notificationManager.notify(NOTIFICATION_ID, notification);
    Log.i("notif","Notifications sent.");

}

}

Я вижу все журналы в Logcat, но уведомление по-прежнему не запускается. Я не знаю, где я не прав.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...