Я отображаю уведомление, когда пользователь достигает цели (84 км ходьбы). Я отображаю это уведомление, но когда я снова открываю приложение, оно отображается снова. Как я могу сделать это, чтобы запустить только один раз (один разпользователь достигает 84 КМ)?
Вот код, который я проверяю КМ (в asynctask )
protected String doInBackground(String... aurl) {
totalKm = (int) Float.parseFloat(TripsInfo.km.get(TripsInfo.userRank - 1));
if (totalKm == 84 ) {
milestoneNotification(totalKm);
} else if (totalKm == 130 ) {
milestoneNotification(totalKm);
} else if (totalKm == 200) {
milestoneNotification(totalKm);
}
return null;
}
и еще одну функцию для создания уведомления
public void milestoneNotification(int km_up) {
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(Profile.this, CHANNEL_ID)
.setSmallIcon(R.mipmap.icon_app)
.setContentTitle("Gekon")
.setContentText("Congratulations!You reached " + km_up + "KM!")
.setVibrate((new long[]{1000, 1000, 1000, 1000, 1000}))
.setLights(Color.GREEN, 3000, 3000)
.setContentIntent(PendingIntent.getActivity(this, 0, new Intent(), 0))
.setAutoCancel(true)
.setPriority(NotificationCompat.PRIORITY_DEFAULT);
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
// notificationId is a unique int for each notification that you must define
notificationManager.notify(1, mBuilder.build());
}