您好 我的申请就像这样。
首先调用StartUpActivity,它会执行很多初始化操作 然后它启动TvbTabActivity(TabActivity),其中包含其他活动作为其选项卡(例如BrowseActivity)。
我看到的问题是 - 当使用任务杀手应用程序在TvbTabActivity / Browse选项卡上终止我的应用程序,并且应用程序再次重新启动时,系统会放弃正常流程(StartUpActivity未生成),但是直接恢复最后一个可见活动(TvbTabActivity)。
如何强制Android始终首先运行StartUpActivity,以便初始化应用程序?
显然,当我的应用程序自行崩溃时,我没有这个问题,哈哈,由于异常,然后再次重新启动。
<application android:icon="@drawable/appicon"
android:label="@string/app_name" android:name="com.xyz.QPApplication"
android:debuggable="true">
<activity android:name=".activity.StartUpActivity" android:configChanges="locale|orientation"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".catalogue.BrowseActivity" android:configChanges="locale|orientation"
android:label="@string/app_name" android:screenOrientation="portrait"
android:launchMode="singleTop">
<intent-filter>
<action android:name="com.xyz.android.intent.action.BROWSE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".activity.TvbTabActivity" android:configChanges="locale|orientation"
android:screenOrientation="portrait" android:launchMode="singleTask">
</activity>
答案 0 :(得分:0)
你做不到。 Android会尝试从中断的地方恢复应用。处理此问题的正确方法是确保您了解Activity
life-cycle并将适当的初始化放在适当的位置。
答案 1 :(得分:0)
有几种方法可以解决您的问题,最好的方法是检查Android生命周期图http://code.google.com/android/images/activity_lifecycle.png并尝试找出一种方法让应用在该环境中运行。
当然,如果你真的想要你可以通过在遇到onPause()或onStop()状态时调用Activity.finish()来杀死你自己的应用程序,但这是一个非常难看的解决方案。
答案 2 :(得分:0)
你无法对此做任何事情 - 发生在你身上的是强制停止API的用途和目的。
任务杀手正在滥用该API。
他们不能再在2.2及更高版本中使用它了。
如果确实想要避免它,您可以将应用限制为仅限2.2或更高版本。或者,如果问题是用户抱怨他们,请告诉他们停止使用任务杀手。或者,如果问题仅在于您在使用任务杀手时不喜欢这种情况,那么请不要使用任务杀手。
此操作与用户在管理应用程序的UI中按下“强制停止”时发生的行为相同。这通常很好,但因为用户必须明确地这样做,而不是这些任务杀手应用程序越来越多地做什么,他们只是在后台敲打东西而没有用户直接参与。