Отображать уведомление только один раз после достижения цели - PullRequest
0 голосов
/ 31 января 2019

Я отображаю уведомление, когда пользователь достигает цели (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());

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