Я хочу, чтобы уведомления в моем приложении ежедневно в указанное время, Уведомления работают нормально.Когда я запускаю свое приложение в первый раз, независимо от того, который час, я получаю уведомление, и когда я нажимаю на это уведомление, оно переводит меня в DetailActivity, когда я нажимаю кнопку «Назад», чтобы перейти к MainActivity, создается другое уведомление.Я перепробовал все, что мог придумать, но ничего не работает.
PS Я впервые с уведомлениями и AlarmManager.
Вот мой код из MainActivity.java
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
rvWord = findViewById(R.id.recyclerview);
rvWord.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
mDBHelper = new DatabaseHelper(this);
dictionaryAdapter = new DictionaryAdapter();
dictionaryAdapter.setCursor(mDBHelper.getDictionaryWord(""));
rvWord.setAdapter(dictionaryAdapter);
// Show banner ads
mAdView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
showTimedNotification(this); // Shows Notification
showRatingDialog(); // Shows Rating Dialog
DrawerLayout drawer = findViewById(R.id.drawer_layout);
NavigationView navigationView = findViewById(R.id.nav_view);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
navigationView.setNavigationItemSelectedListener(this);
}
private void showTimedNotification(Context context) {
Calendar updateTime = Calendar.getInstance();
updateTime.set(Calendar.HOUR_OF_DAY, 8);
updateTime.set(Calendar.MINUTE, 5);
updateTime.set(Calendar.SECOND,10);
Intent intent = new Intent(context, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,
0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarms = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarms.setInexactRepeating(AlarmManager.RTC_WAKEUP, updateTime.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, pendingIntent);
}