Я пишу приложение для Android и хочу удалить пользователя из массива, когда он выйдет из приложения. Я пробовал использовать метод onStop(), но он не работает, как мне хотелось бы, потому что всякий раз, когда изменяется действие, пользователь удаляется из массива.

Мне нужен способ выполнить метод, когда пользователь удалил приложение из «недавних действий». Есть предложения по этому поводу?

0
itaied 31 Май 2014 в 21:06
Рассматривали ли вы onDestroy()?
 – 
PM 77-1
31 Май 2014 в 21:13
Да, я тоже пробовал, но когда вы удаляете приложение из последнего приложения, оно не выполняет метод из onDestroy().
 – 
itaied
31 Май 2014 в 21:15
Взгляни на мой ответ
 – 
mremremre1
31 Май 2014 в 21:20

2 ответа

Лучший ответ

Вы можете отслеживать клавишу возврата, поэтому, когда пользователь нажимает ее для выхода из приложения, вы делаете то, что хотите.

 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
       if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        //YOUR CODE HERE
    finish(); //<<<------MUST BE USED SO THAT THE BUTTON WILL ACTUALLY FINISH THE APP
        }
  return super.onKeyDown(keyCode, event);
   }

В противном случае вы можете попробовать метод onPause () вместо onStop. Android не рекомендует использовать onStop для сохранения данных и т. Д. Я думаю, что лучше всего использовать клавишу возврата.

0
mremremre1 31 Май 2014 в 21:14
Хорошо, спасибо, что можете мне помочь. Я не хочу ничего делать с onPause(), так как пользователь может получить звонок или случайно нажать кнопку домой, поэтому я не хочу, чтобы приложение выбрасывало его из игры. А как насчет удаления приложения из «недавних действий»? Если пользователь удаляет приложение из «недавних действий», как я могу выполнить метод до того, как он закроет приложение?
 – 
itaied
31 Май 2014 в 21:26
Я думаю, что единственное, что вы можете сделать, это поместить логическое значение элемента управления внутрь onKeyDown и использовать метод onDestroy. Я имею в виду, что если нажать клавишу «Назад», это сделает логическое значение истинным. Таким образом, onDestroy будет что-то делать, только если логическое значение равно false, потому что в противном случае onKeyDown выполнил работу. Если это не сработает, я думаю, вам, возможно, придется полностью изменить свой подход.
 – 
mremremre1
31 Май 2014 в 21:34

Мне нужен способ выполнить метод, когда пользователь удалил приложение из "недавних действий"

Когда вы проводите пальцем по приложению из списка, оно фактически просто останавливает все службы приложения (а не само приложение!). Вы можете подумать о создании службы только для этой цели, чтобы, когда служба была убита, вы получали уведомление через onTaskRemoved.

Вы можете прочитать еще здесь

0
Community 13 Апр 2017 в 15:18