Problema de inicio de Launcher con fragmentos después de reiniciar

Estoy desarrollando una aplicación que se utilizará en un entorno industrial como una interfaz de mano, distribuida y preconfigurada por mi lugar de trabajo. Estoy trabajando para hacer que la aplicación se ejecute como Home Launcher para que haya menos tentación de que las tabletas se "pierdan".

FONDO

Tengo lo siguiente en mi manifiesto para hacer que la aplicación sea un Lanzador:

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.HOME" />
    <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>

(Puedo publicar más del manifiesto si es necesario)

La estructura de mi aplicación es la siguiente:

USB_Stuff extiende la actividadPrincipal extiende USB_StuffUIs extiende FragmentoSQLiteHelper extiende SQLiteOpenHelper

El "Principal" maneja todas las comunicaciones y transacciones de fragmentos. El "Principal" es también lo que está registrado en el manifiesto bajo el<activity> atributo de nombre.

También tengo unaBOOT_COMPLETED Receptor dentro del manifiesto que lanza mi aplicación.

PROBLEMA

Resuelto Ahora todo funciona bien si ejecuto el programa desde Eclipse y trabajo con él. Sin embargo, si reinicio el dispositivo (probado en Asus Nexus 7 (4.2.2) y Samsung Galaxy Tab 2 7.0 (4.1.1)), se inicia en la primera pantalla, que contiene unListView como sigue:

Luego, puedo elegir un elemento de la lista y me llevará al siguiente fragmento que contiene tres botones en lugar de la lista:

Resuelto Si hago clic dentro de los cuadros rojos en la segunda imagen de arriba, entonces puedo seleccionar un elemento diferente del formularioListView hasta una vez, después de tocar el espacio rojo una vez que se desactiva el "onClickListener" (?). Aunque si hago clic en uno de los tres botones visibles, la aplicación realiza suonClick Método en lugar de hacer clic a través de la pantalla anterior. Este comportamiento continúa en varias pantallas y se detiene una vez que la aplicación alcanza elTableLayouts.

Otro problema, que creo que puede estar relacionado, es que el botón de retroceso y mis botones de cancelación posteriores que se supone que hacen estallar la pila de respaldo hacia ciertos puntos o bien no funcionarán en absoluto o realizarán una ubicación de pop incorrecta.

ACTUALIZAR: Después de implementar mi solución a continuación, he resuelto la mayoría de los problemas, excepto que si comienzo a usar la aplicación dentro de los primeros 2 segundos (aproximadamente), aún así termino con las ubicaciones aleatorias de la pila de respaldo al hacer estallar.

Lo que he demostrado hasta ahora ...

Si comento el Home Launcherintent-filter y usar unBOOT_COMPLETED Filtro para iniciar la aplicación, entonces todo vuelve a funcionar correctamente.

Además, agregué sentencias de registro para ver el recuento de entradas de la pila trasera a lo largo del programa y seguí el mismo camino exacto a través de la aplicación cuando se estaba ejecutando correctamente y no, y los números son consistentes, pero si hago clic en los cuadros rojos, la aplicación agregar fragmentos a la pila de atrás que no debería. Esto me lleva a creer que no es un problema con elementos adicionales en la pila posterior que también pueden estar perdiendo sus puntos de vista.

Resuelto EDITAR: Agregué un botón que no hizo nada al segundo fragmento que estabamatch_parent tanto en ancho como en alto y cuando intenté hacer clic en el fragmento anteriorListView, No funcionó. Parece que el fondo es "seleccionable" y que el fragmento anterior se está configurando como "fondo / fondo de pantalla" (?).

Preguntas

CONTESTADO 1) ¿Qué podría causar estas "fugas de diseño" de un fragmento a otro después de un reinicio?

PARCIALMENTE RESPUESTA 2) ¿Qué podría causar los botones de retroceso / cancelación (popBackStack(...)) para no funcionar correctamente después de un reinicio?

Más código disponible a petición para facilitar una solución.

Respuestas a la pregunta(1)

Su respuesta a la pregunta