Проблема Home Launcher с фрагментами после перезагрузки
Я занимаюсь разработкой приложения, которое будет использоваться в промышленных условиях в качестве портативного интерфейса, распространяемого и предварительно настроенного моим рабочим местом. Я работаю над тем, чтобы приложение запускалось как Home Launcher, чтобы у планшетов не было соблазна "пропадают без вести".
ФОН
У меня есть следующее в моем манифесте, чтобы сделать приложение Launcher:
(Я могу опубликовать больше манифеста при необходимости)
Мое заявление's структура выглядит следующим образом:
USB_Stuff расширяет активностьГлавное расширяет USB_StuffПользовательский интерфейс расширяет фрагментSQLiteHelper расширяет SQLiteOpenHelper"Главный" обрабатывает все фрагменты сообщений и транзакций. "Главный" также то, что зарегистрировано в манифесте под атрибут имени.
у меня тоже естьBOOT_COMPLETED
получатель в манифесте, который запускает мое приложение.
ПРОБЛЕМА
РЕШИТЬ Теперь все работает отлично, если я запускаю программу из Eclipse и работаю с ней. Однако, если я перезагружаю устройство (протестировано на Asus Nexus 7 (4.2.2) и Samsung Galaxy Tab 2 7.0 (4.1.1)), оно запускается на первом экране, который содержитListView
следующее:
Затем я могу выбрать элемент из списка, и он перенесет меня к следующему фрагменту, который содержит три кнопки вместо списка:
РЕШИТЬ Если я щелкну в красных полях на втором изображении выше, то я могу выбрать другой элемент изListView
до одного раза, после того как я коснусь в красном пространстве, как только он деактивируетonClickListener»(?). Хотя, если я нажму на одну из трех видимых кнопок, приложение выполнитonClick
метод вместо перехода на предыдущий экран. Это поведение продолжается для нескольких экранов и останавливается, когда приложение достигает.TableLayouts
Еще одна проблема, которая, как мне кажется, может быть связана, заключается в том, что кнопка «Назад» и мои более поздние кнопки отмены, которые должны перемещать задний стек в определенные точки, либо не будут работать вообще, либо будут выполнять неверное расположение.
ОБНОВИТЬ: После реализации моего решения, приведенного ниже, я решил большинство проблем, за исключением случаев, когда я начинаю использовать приложение в течение первых 2 секунд (около), а затем по-прежнему получаю случайные места в стеке при получении.
Что я понял так далеко ...
Если я закомментирую Home Launcherintent-filter
и использоватьBOOT_COMPLETED
Фильтр для запуска приложения, затем все снова работает правильно.
Кроме того, я добавил операторы журнала для просмотра количества записей заднего стека во всей программе и следовал по тому же точному пути через приложение, когда оно работало правильно и не так, и числа совпадают, но если я нажму в красных полях, приложение будет добавить фрагменты в задний стек, что не следует. Это наводит меня на мысль, что это не проблема с дополнительными элементами в заднем стеке, которые также могут просачиваться через их представления.
РЕШИТЬ РЕДАКТИРОВАТЬ: Я добавил кнопку, которая ничего не делала во второй фрагмент, который былmatch_parent
в ширину и высоту, и когда я пытался перейти к предыдущему фрагментуListView
, это не работает. Кажется, будто фонинтерактивный» и что предыдущий фрагмент устанавливается как "фон / обои»(?).
ВОПРОСЫ
ОТВЕТЫ 1) Что может быть причиной этихмакет утечки " от фрагмента к фрагменту после перезагрузки?
ЧАСТИЧНО ОТВЕТИЛ 2) Что может вызвать кнопки возврата / отмены (popBackStack(...)
) не работать должным образом после перезагрузки?
Больше кода доступно по запросу, чтобы облегчить решение.