【发布时间】:2014-03-10 01:37:05
【问题描述】:
我希望我的应用程序显示android:alwaysRetainTaskState 在Android documentation 中描述的默认行为:
通常,系统会清除一个任务(从 堆栈在根活动之上)在某些情况下,当用户 从主屏幕重新选择该任务。通常,如果 用户在一定时间内没有访问任务,例如 30 分钟。
这不是我看到的。即使超过 1 天,使用启动器图标重新启动我的应用程序也会将用户返回到他们离开的地方。 例如,全新安装后,我的应用在启动时会显示主屏幕活动 H。然后用户导航到详细活动:H -> J。在很长一段时间后重新启动时,我希望用户看到 H,但他们看到的是 J。
这些是我在 AndroidManifest.xml 中的活动设置的标志:
<activity
android:name=".AppHomeScreen"
android:label="@string/app_name"
android:alwaysRetainTaskState="false"
android:launchMode="singleTop"
android:windowSoftInputMode="stateUnchanged">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
我正在运行 Android KitKat 4.4.2。
是否有任何原因导致我在这里看不到预期的行为?我知道我可以设置android:clearTaskOnLaunch 或android:finishOnTaskLaunch 以在每次用户离开应用程序时清除任务,但这太激进了,我想要描述的行为只有在长时间不活动后才会忘记状态.
(Android 文档似乎并不能保证该行为,只是在“某些情况”和“在一定时间后,例如 30 分钟后”清除任务。也许默认行为已更改,Android文档过期了?)
【问题讨论】:
-
此行为是特定于制造商/供应商的。在不同的设备上,您会看到不同的行为。有些设备会主动清除任务,而其他设备会在更长的时间内保留任务状态。
标签: android android-intent android-manifest