Я задавался вопросом, может ли кто-нибудь пролить свет на это,
У меня есть одно приложение активности, в котором есть список. В onCreate() я заполняю некоторые данные в этом списке (читая их из базы данных sqlite). У меня есть кнопка закрытия, которая запускает finish(); слишком. теперь, когда я нажимаю кнопку закрытия, активность исчезает, но когда я нажимаю значок приложения на рабочем столе (или выбираю его из кнопки истории телефона), я вижу все предыдущие данные в списке. функция, которую я ищу, - запустить приложение заново после нажатия кнопки закрытия для следующего запуска. (что-то вроде кнопки выхода из банковского приложения). (представление списка здесь является лишь примером, демонстрирующим необходимость, поэтому очистка представления списка перед finish(); неприемлема. Это очень простой и простой запрос, и я не думаю, что какой-либо код необходим, но если кому-то интересно, я также опубликуйте код.
То, что я хочу, - это то же поведение, что и банковское приложение при выходе, когда пользователь покидает главный экран или щелкает выход, приложение полностью закрывается. Я могу добиться этого, используя следующие методы (номер 2 и 3), но, по-видимому, эти решения не являются лучшими практиками. Тогда какой метод использует банковское приложение для мгновенного закрытия приложения? Я сомневаюсь, что они используют что-то, что не является лучшей практикой, например System.exit(0)?! или они!
Многие разработчики утверждают, что закрытие приложения или уничтожение родительской активности — это работа ОС.
Некоторые говорят, используйте use :
int pid = android.as.Process.myPid();
android.os.Process.killProcess(pid);
(это решение в соответствии с этим не является хорошей идеей, потому что при следующем запуске приложение ведет себя так, как будто оно было аварийно завершено в прошлый раз https://stackoverflow.com/a/24015569/4173238 )
некоторые говорят, что используйте System.exit(0); в соответствии с этим https://stackoverflow.com/a/5846275/4173238 также не рекомендуется
некоторые говорят, что используйте finish(); но финиш не делает то, что я хочу
Спасибо за любой вклад
finish()
. Finish() не выполняет ту же работу для меня - тогда вам нужно подробно объяснить, что такое та же работа и чтоfinish()
не делает. Вы также можете объяснить, что означает уход пользователя с главного экрана. Я надеюсь, вы понимаете, что не все здесь находятся на одном уровне знаний об Android. Я надеюсь, вы понимаете, что вы должны предоставить минимальный, полный и проверенный пример того, что у вас не работает. - person CommonsWare   schedule 14.07.2015finish()
, вы просматриваете новый экземпляр действия, когда снова нажимаете значок приложения. Это означает, что откуда бы ни поступали все предыдущие данные, они находятся вне области действия, например, в статическом члене данных. Вам нужно будет определить, откуда поступают эти данные, и предпринять шаги, чтобы не использовать эти данные, когда вы этого не хотите. - person CommonsWare   schedule 15.07.2015