我有一個Android應用程序與一些活動。有時會開始錯誤的活動。Android - 錯誤的活動有時開始
通常情況下,一個應用程序子類開始,然後開始活動(StartAct ...機器人:名字= 「android.intent.action.MAIN」,機器人:名字= 「android.intent.category.LAUNCHER」) 做了一些工作,然後啓動InitializeActivity。這做了一些工作,然後觸發我的主要顯示活動(MainAct)。前兩個活動進行一些基本的初始化,包括在MainAct的啓動意向之前設置靜態「isInitialized」標誌。
使用startActivity()使用特定的intent(... activity.class指定)啓動活動,並在startActivity()後調用finish()。
然而,這裏是時有發生,我不知道爲什麼...
總之,應用程序被殺害,並且當按下圖標來啓動它,它直接跳到第三( MainAct)活動。這會導致應用程序檢測錯誤(將IsInitialized標誌是假的),並停止:
- 啓動應用程序通常與圖標:
- ... Application子類開始,也激發了一些工作線程
- ... StartActivity運行,然後觸發InitializeActivity並完成
- ... InitializeActivity運行,然後將將IsInitialized並開始MainAct並完成
- ... MainAct開始,運行好
- ...主頁按鈕被擊中,憤怒的小鳥運行
- ... MainAct日誌的onPause,然後onStop。
- ...應用程序子類擁有的工作線程繼續定期做東西和日誌。
- 25分鐘後,整個應用程序突然死亡。這個觀察是基於日誌活動的thhe結束,
- 時間的推移
- Home鍵擊
- 啓動器圖標被按下應用
- Application子類的onCreate被調用,並返回
- * MainAct.onCreate被稱爲!(無StartAct,沒有InitializeActivity) *
我缺少什麼?
注意:由於這個問題,添加了初始化標誌。它僅在啓動主要活動的代碼中設置,並且僅在主活動中的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>
你能證明你的清單文件......像接縫的問題在那裏..根據您的要求增加 – Dinash
。 – Mesocyclone
這是一個很舊的帖子,但我很高興你發佈了它,我很高興我找到了它。否則我不會相信我真的體驗了Android使用我的應用程序所做的事情。不幸的是,唯一的答案是相當成問題的 - 我必須將kludgy代碼添加到大約20個Activity類以捕獲所有可能的情況。你有沒有找到更好的解決方案? – RenniePet