Я хочу сделать кнопку действия повтора для уведомления о том, что когда пользователь нажимает на него, уведомление исчезает и появляется снова через час, а одна кнопка отмены действия, что при его нажатии уведомление будет отменено и появится снова на следующий день снова. Я попытался сделать это, открыв два новых занятия, но не могу понять, как это можно сделать. Есть идеи, как мне это сделать? Вот код: Основная активность:
EditText write;
Button notification;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
notification = findViewById(R.id.notification);
write = findViewById(R.id.write);
notification.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 12);
calendar.set(Calendar.MINUTE, 57);
calendar.set(Calendar.SECOND, 0);
Intent intent = new Intent(getApplicationContext(), Notification_receiver.class);
intent.putExtra("TEXT", String.valueOf(write.getText()).trim());
PendingIntent pendingIntent =PendingIntent.getBroadcast(getApplicationContext(), 100, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
}
});
}
А вот Приемник:
public class Notification_receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String text = intent.getStringExtra("TEXT");
NotificationManager notificationManager = (NotificationManager)context.getSystemService(context.NOTIFICATION_SERVICE);
Intent repeating_intent = new Intent(context, MainActivity.class);
repeating_intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
repeating_intent.putExtra("action","snooze");
repeating_intent.putExtra("action","cancel");
PendingIntent pendingIntent =PendingIntent.getActivity(context, 100, repeating_intent, PendingIntent.FLAG_UPDATE_CURRENT);
Intent snoozeintent = new Intent(context, ActionBtnReceiver.class);
snoozeintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
snoozeintent.putExtra("action","snooze");
PendingIntent snzpendingIntent = PendingIntent.getActivity(context, 100, snoozeintent, PendingIntent.FLAG_UPDATE_CURRENT);
Intent cancelintent = new Intent(context, ActionCancelBtnReceiver.class);
cancelintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
cancelintent.putExtra("action","cancel");
PendingIntent cnlpendingIntent =PendingIntent.getActivity(context, 100, cancelintent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setContentIntent(pendingIntent)
.setSmallIcon(R.drawable.ic_launcher_background)
.setContentTitle("Notification")
.setContentText(text)
.setAutoCancel(true)
.addAction(R.drawable.ic_snooze_black_24dp, "Snooze", snzpendingIntent)
.addAction(R.drawable.ic_cancel_black_24dp, "Cancel", cnlpendingIntent);
notificationManager.notify(100, builder.build());
}
ActionBtnReceiver
и ActionCancelBtnReceiver
пусты, потому что я не знаю, как это сделать. Я новичок в android программировании, пожалуйста, помогите. Очень грубо, что ты не отвечаешь.