Android在应用程序被杀死后强制进行完全重启

6

你好,我的应用程序运行方式如下。

首先调用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>
3个回答

0

你不能这样做。Android会尝试恢复应用程序到离开时的状态。正确的处理方式是确保你理解Activity生命周期并将适当的初始化放在适当的位置。


0

有几种方法可以解决您的问题,最好的方法是检查Android生命周期图http://code.google.com/android/images/activity_lifecycle.png,并尝试找出一种在该上下文中使应用程序正常工作的方法。

当然,如果您真的想要,您可以通过在onPause()或onStop()状态下调用Activity.finish()来终止您自己的应用程序,但这是相当丑陋的解决方案。


0

你无法对此做任何事情 - 正在发生的是强制停止API所做的,也是其旨在实现的。

任务管理器正在滥用该API。

他们不能在2.2及更高版本中使用它。

如果你真的想避免这种情况,你可以将你的应用程序限制为只能在2.2或更高版本中使用。或者,如果问题是用户抱怨它们,告诉他们停止使用任务管理器。或者,如果问题仅仅是你不喜欢在使用任务管理器时发生这种情况,那就不要使用任务管理器。

此外,当用户在管理应用程序的UI中按下“强制停止”时,会出现相同的行为。虽然这通常是可以接受的,因为用户必须明确执行该操作,而不是像这些任务管理器应用程序越来越多地做的那样,在用户没有直接参与的情况下在后台删除一些东西。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接