Мне кажется, мне нужна помощь, чтобы понять, как Bundles
обрабатываются на Destroy
. У меня есть проблема с моим приложением, где bundle
становится null
, когда его закрыты в течение ночи или в течение нескольких часов и т. Д. Но я не могу реплицировать это для целей отладки. Независимо от того, что я делаю, расслоение остается неповрежденным после того, как предполагалось, вынужден истребляют и т.д.Force Destroy приложения для тестирования
Чтобы повторить этот вопрос я попытался две разные вещи:
Использование опции в разделе Параметры разработчика IIRC -
Settings>Developer Options > Don't Keep activities
.Использование кнопки «STOP» под управлением Eclipse DDMS.
Ни один из них, кажется, не удаляет Bundle
. Я что-то упускаю, как укладывается пакет после предполагаемого полного уничтожения?
Я использую Nexus 5, Android 4.4.2
У меня есть чек в моих «предпочтениях» class
, которые в первую очередь проверяет, есть ли Bundle
переменных доступны из логического предыдущего/родителя Activity
, если не его читается с Android SharedPreferences
. Проблема в том, что у меня должна быть проблема, когда я проверяю пакет не null
. Поэтому мне нужно отлаживать это, так как он позволяет устанавливать нулевые значения из набора в мои идентификаторы «сеанса»
Я что-то упустил? Разумеется, пакет должен быть уничтожен вместе с моим приложением, но при использовании опции 1) выше, Bundle все еще существует, поэтому я не могу отлаживать свою инструкцию IF. Вариант 2) не полезен, потому что кнопка останова просто закрывает активную активность - мое приложение переходит назад по иерархии экранов, когда я нажимаю кнопку «Стоп». Опять же, не уничтожая все приложение из памяти. Я должен упустить что-то фундаментальное!
Приветствия за любую помощь.
BTW, я ищу все решения на СО, я мог бы, все, похоже, использует optoins выше без проблем, что-то может отличаться от моего Android OS/Phone?
Редактировать: Эта статья от Google показывает функциональность, в которой я нуждаюсь, но я предполагаю, что это устаревшая статья и ее ссылка на то, что я пытаюсь в варианте 1)? - См «Немедленно уничтожить деятельность» - developer.android.com/tools/debugging/debugging-devtools.html
Edit2: см комментарии ниже, я ошибочно думал, что выше Google документ имел в виду удаление всего приложения из памяти а не просто Activity.Во всяком случае сейчас я попробую что-нибудь подобное, чтобы проверить значение Bundle
Long val = bundle.getLong(Navigator.INTENT_KEY_CHANNEL_ID, 0);
if (val != 0 && val != null) {
}
Я пытался понять ваш вопрос и не смог. Это имеет неточности и неправильную терминологию. Я предполагаю, что рассматриваемый 'Bundle' - это тот, который передается конструктору' Activity'. Почему бы не установить его значение null в коде перед вашим багги-методом? Я не понимаю, что вы подразумеваете под «Destroy». Вы имеете в виду, что процесс приложения убит? В любом случае, я не вижу причин, по которым «Bundle» будет удален, и с ограниченным контекстом, который вы предоставили, сделайте вывод, что проблема полностью в вашем коде, который вы не указали, и поэтому вопрос невозможен. – Simon
Я отредактировал мое сообщение для лучшей ясности, я думал, что я был прав на уничтожение. Я имею в виду, мне нужен способ проверить, что мое приложение полностью удалено из памяти. Кажется, что ничего не тестирует. Эта статья от Google показывает функциональность, в которой я нуждаюсь, но я предполагаю, что это устаревшая статья и ее ссылка на то, что я пытаюсь в варианте 1)? - См. «Немедленно уничтожить действия» - developer.android.com/tools/debugging/debugging-devtools.html – wired00
«Я отредактировал свое сообщение для большей ясности» - Саймон прочитал ваш пересмотренный вопрос, как вы можете сказать по метке времени его комментарий. «Я думал, что я был ясен об уничтожении» - вы не знаете, «уничтожить» или «расслоение». На что «Пакет» вы имеете в виду? Кто-то перешел в 'onCreate()'? Как вы начинаете свое приложение после остановки процесса с DDMS? – CommonsWare