Повторяющиеся уведомления

Как сделать так чтобы приложение отправляло уведомление каждый день в выбранное время на протяжении недели? Вот мой код:

private int notificationId = 3;
public String message;
public int tch=0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_notifontime);

    // Set Onclick Listener.
    findViewById(R.id.setBtn).setOnClickListener(this);
    findViewById(R.id.cancelBtn).setOnClickListener(this);
}

@Override
public void onClick(View view) {
    EditText editText = findViewById(R.id.editTextnotif);
    TimePicker timePicker = findViewById(R.id.timePicker);
    message = editText.getText().toString();
    // Set notificationId & text.
    Intent intent = new Intent(Main_Notif.this, AlarmReceiver.class);
    intent.putExtra("notificationId", notificationId);
    intent.putExtra("todo", message);

    // getBroadcast(context, requestCode, intent, flags)
    PendingIntent alarmIntent1 = PendingIntent.getBroadcast(Main_Notif.this, 0,
            intent, PendingIntent.FLAG_UPDATE_CURRENT);

    AlarmManager alarm = (AlarmManager) getSystemService(ALARM_SERVICE);

    switch (view.getId()) {

        case R.id.setBtn: {
            int hour = timePicker.getCurrentHour();
            int minute = timePicker.getCurrentMinute();

            // Create time.
            Calendar startTime = Calendar.getInstance();
            startTime.set(Calendar.HOUR_OF_DAY, hour);
            startTime.set(Calendar.MINUTE, minute);
            startTime.set(Calendar.SECOND, 0);
            long alarmStartTime = startTime.getTimeInMillis();

            // Set alarm.
            // set(type, milliseconds, intent)
            alarm.set(AlarmManager.RTC_WAKEUP, alarmStartTime, alarmIntent1);

            Toast.makeText(this, "Done!", Toast.LENGTH_SHORT).show();
            tch++;

        }
        break;

        case R.id.cancelBtn:
            alarm.cancel(alarmIntent1);
            Toast.makeText(this, "Canceled.", Toast.LENGTH_SHORT).show();
        break;
    }
}

private final int NOTIFICATION_ID = 2342;
private String CHANNEL_ID = "my_channel_011";

public String message;
Random random = new Random();
int m = random.nextInt(9999 - 1000) + 1000;

@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
@Override
public void onReceive(Context context, Intent intent) {

    NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {

        CharSequence name = "my_channel";
        String Description = "This is my channel";
        int importance = NotificationManager.IMPORTANCE_HIGH;
        NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, importance);
        mChannel.setDescription(Description);
        mChannel.enableLights(true);
        mChannel.setLightColor(Color.RED);
        mChannel.enableVibration(true);
        mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
        mChannel.setShowBadge(false);

        notificationManager.createNotificationChannel(mChannel);
    }
    message = intent.getStringExtra("todo");
    NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID)
            .setSmallIcon(R.drawable.itdoc)
            .setContentTitle("Лекарство ")
            .setContentText(message)
            .setShowWhen(true);

    //.setWhen(Calendar.getInstance().getTimeInMillis() );
    Intent resultIntent = new Intent(context, LoginActivity.class);
    TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
    stackBuilder.addParentStack(MainActivity.class);
    stackBuilder.addNextIntent(resultIntent);
    PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, 0);
    builder.setContentIntent(resultPendingIntent);
    notificationManager.notify(m, builder.build());
}

Ответы (0 шт):