Как остановить уведомление Android от повторения - PullRequest
1 голос
/ 09 марта 2019

Я пытаюсь выдать уведомление, когда уровень заряда батареи ниже 5%, но я хочу его только один раз. С кодом ниже он будет повторяться до тех пор, пока уровень заряда батареи не выйдет из состояния.

else if((level<=5)&(level>0)){
                batteryState.setImageResource(R.drawable.ic_batterylow);
                Notification notificationobject=new NotificationCompat.Builder(MainActivity.this,Notifications.CHANNEL_1_ID)
                        .setSmallIcon(R.drawable.ic_stat_name)
                        .setContentTitle("Battery Warning")
                        .setContentText("Your battery is low, please plugin the charger.")
                        .setPriority(NotificationCompat.PRIORITY_DEFAULT)
                        .setCategory(NotificationCompat.CATEGORY_MESSAGE)
                        .build();
                mNotificationManagerCompatObject.notify(1,notificationobject);
            }

1 Ответ

1 голос
/ 09 марта 2019

Вы можете использовать переменную, чтобы проверить, вызывали ли вы этот метод уже или нет:

boolean isCalled = false;

else if((level<=5)&(level>0)){
//if you did not called your method once
if(isCalled == false){
            //make sure that this will only get called once
            isCalled = true;
            batteryState.setImageResource(R.drawable.ic_batterylow);
            Notification notificationobject=new NotificationCompat.Builder(MainActivity.this,Notifications.CHANNEL_1_ID)
                    .setSmallIcon(R.drawable.ic_stat_name)
                    .setContentTitle("Battery Warning")
                    .setContentText("Your battery is low, please plugin the charger.")
                    .setPriority(NotificationCompat.PRIORITY_DEFAULT)
                    .setCategory(NotificationCompat.CATEGORY_MESSAGE)
                    .build();
            mNotificationManagerCompatObject.notify(1,notificationobject);
           }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...