Проблема 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(...)) не работать должным образом после перезагрузки?

Больше кода доступно по запросу, чтобы облегчить решение.

Ответы на вопрос(1)

Ваш ответ на вопрос