Tengo una aplicación de Android con una serie de actividades. La actividad incorrecta se inicia a veces.Android - La actividad incorrecta a veces comienza
Normalmente, una subclase de aplicación se inicia, a continuación, iniciar la actividad (StartAct ... android: name = "android.intent.action.MAIN", android: name = "android.intent.category.LAUNCHER") funciona un poco y luego inicia InitializeActivity. Esto hace un poco de trabajo y luego dispara mi actividad de visualización principal (MainAct). Las dos primeras actividades realizan una inicialización esencial, incluida la configuración de un indicador estático "isInitialized" justo antes de iniciarse la intención para el MainAct.
Las actividades se inician con startActivity() con un propósito específico (... activity.class especificado) y call finish() después de startActivity().
Sin embargo, esto es lo que a veces sucede, y no sé por qué ...
En resumen, la aplicación se mata y cuando se pulsa el icono para iniciarlo, se salta directamente a la tercera (MainAct) actividad. Esto hace que la aplicación para detectar un error (IsInitialized bandera es falsa) y detener:
- lanzar la aplicación normalmente con el icono:
- ... subclase aplicación se inicia, además de fuegos en algunos subprocesos de trabajo
- ... startActivity carreras, y luego se dispara InitializeActivity y termina
- ... InitializeActivity carreras, a continuación, establece IsInitialized y comienza MainAct y acabados
- ... MainAct se inicia, se ejecuta okay
- ... botón de inicio es golpeado y Angry Birds se ejecuta
- ... MainAct registros onPause, luego onStop.
- ... Subprocesos de trabajo propiedad de la subclase Aplicación continúan haciendo cosas periódicamente y registrando.
- Después de 25 minutos, toda la aplicación se destruye de repente. Esta observación se basa en extremo thhe de la actividad maderera,
- El tiempo pasa
- botón Inicio golpeado
- icono del iniciador se presiona para la aplicación
- Aplicación subclase onCreate se llama y devuelve
- * Se llama a MainAct.onCreate!(Sin StartAct, sin InitializeActivity) *
¿Qué me falta?
Nota: el indicador de inicialización se agregó debido a este problema. Se establece en el único lugar del código que inicia la actividad principal y solo se marca en Crear en la actividad principal.
[por solicitud] Archivo de manifiesto (ligeramente redactado). Tenga en cuenta que el servicio aquí no se usa actualmente.
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="xxx.yyy.zzz"
android:versionCode="1" android:versionName="1.0.1">
<application
android:icon="@drawable/icon_nondistr"
android:label="@string/app_name"
android:name=".app.MainApp"
android:debuggable="true">
<activity
android:label="@string/app_name"
android:name=".app.StartAct" android:theme="@android:style/Theme.NoTitleBar">
<intent-filter>
<action
android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:label="Html"
android:name=".app.HtmlDisplayAct"/>
<activity
android:label="Init"
android:configChanges="orientation"
android:name=".app.InitializeActivity" android:theme="@android:style/Theme.NoTitleBar"/>
<activity
android:label="MyPrefs"
android:name=".app.PrefsAct" />
<activity
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar"
android:name=".app.MainAct">
</activity>
<service
android:name=".app.svcs.DataGetterService" />
</application>
<uses-sdk android:minSdkVersion="4"/>
<uses-permission
android:name="android.permission.INTERNET" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission
android:name="com.android.vending.CHECK_LICENSE" />
<uses-feature
android:name="android.hardware.location.network"
android:required="false" />
</manifest>
puede mostrar el archivo de manifiesto ... costuras, como un problema por allá .. – Dinash
añadido por su solicitud. – Mesocyclone
Esta es una publicación muy antigua, pero me alegro de que la hayas publicado y me alegro de haberla encontrado. De lo contrario, no podría creer que realmente estaba experimentando lo que Android estaba haciendo con mi aplicación. Lamentablemente, la única respuesta es bastante problemática: tendré que agregar el código kludgy a aproximadamente 20 clases de Actividad para detectar todos los casos posibles. ¿Alguna vez encontró una mejor solución? – RenniePet