У меня есть приложение для Android с рядом действий. Иногда запускается неправильное действие.
Обычно Подкласс приложения запускается, затем запускается действие ( StartAct ... android: name = "android.intent.action.MAIN", android: name = "android.intent.category.LAUNCHER") выполняет некоторую работу, а затем запускает InitializeActivity . Это выполняет некоторую работу, а затем запускает мое основное действие отображения ( MainAct ). Первые два действия выполняют важную инициализацию, включая установку статического флага « isInitialized » непосредственно перед запуском намерения для MainAct .
Действия запускаются с помощью startActivity () с использованием конкретное намерение (... указано действие.class) и вызов finish () после startActivity ().
Однако вот что иногда происходит, и я не знаю почему ...
Короче говоря, приложение завершается, и когда для его запуска нажимается значок, он сразу переходит к третьему ( MainAct ) действию. Это приводит к тому, что приложение обнаруживает ошибку (флаг isInitialized имеет значение false) и останавливается:
Что мне не хватает?
Примечание: из-за этой проблемы был добавлен флаг инициализации. Он устанавливается в единственном месте кода, которое запускает основное действие, и проверяется только в onCreate в основном действии.
[на запрос] Файл манифеста (слегка отредактирован). Обратите внимание, что эта служба в настоящее время не используется.
<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>