在我的一个应用程序中,我看到了很奇怪的行为:当我的应用程序在前台运行时(最顶层),然后我可以在系统的最近看到它的活动。但是,只要我将其置于背景中,之前列出的相同活动(即AccountsActivity
)就不再存在于最近。我的清单文件的相关部分:
<application
android:name=".WebnetApplication"
android:allowBackup="false"
android:allowClearUserData="true"
android:hardwareAccelerated="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".StartActivity"
android:alwaysRetainTaskState="true"
android:excludeFromRecents="true"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoDisplay" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".AccountsActivity"
android:excludeFromRecents="false"
android:launchMode="singleTask"
android:windowSoftInputMode="adjustResize" />
...
由于这是我唯一一个行为不端的应用程序,我检查了所有样式,我检查了WebnetActivity
和WebnetApplication
,以确保我不会调用任何可能影响最近的内容。没有这样的。
然后我开始删除Manifest文件以查看是否会发生变化。正如预期的那样,罪魁祸首潜伏在那里,但对我来说仍然不是很清楚。在开始时,Manifest中的AccountsActivity
条目根本没有android:excludeFromRecents
条目 - 这导致AccountsActivity
根本不在“最近”中显示。当我添加android:excludeFromRecents="true"
时,活动在“最近”中变得可见,但只有当它在前面时才会显示。当我向后移动时,它从最近消失了。当我从android:excludeFromRecents="true"
声明中删除StartActivity
时,无论应用是在前面还是在后台,AccountsActivity
都会在最近显示,我可以完全从其条目中删除android:excludeFromRecents
而没有任何问题同样。
目前我正在弯着头试图理解为什么一切都这样 - 这是正常的(我不知道什么)或者它可能是框架中的错误?任何人都面临类似的问题,可以分享经验,想法或解释吗?
答案 0 :(得分:9)
从主要活动中删除android:excludeFromRecents="true"
。
是否应排除此活动启动的任务 来自最近使用的应用程序列表(&#34;最近的应用程序&#34;)。那是, 当此活动是新任务的根活动时,此属性 确定任务是否不应出现在最近的列表中 应用。设置&#34; true&#34;如果任务应从列表中排除;组 &#34;假&#34;如果它应该包括在内。默认值为&#34; false&#34;。