问题描述
在我的一个应用程序中,我看到了相当奇怪的行为:当我的应用程序在前台运行(最顶层的应用程序)时,我可以在系统的“最近”中看到其活动。但一旦我将其置于后台,相同的活动(即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" />
...
Findings
由于这是我的唯一一个出现这种行为的应用程序,因此我检查了所有样式,并且我的WebnetActivity
and WebnetApplication
以确保我不会调用任何可能影响最近的内容。没有这样的事情。
然后我开始删除清单文件,看看是否会发生变化。正如预期的那样,罪魁祸首潜伏在那里,但我仍然不清楚为什么。开始时,AccountsActivity
清单中的条目没有android:excludeFromRecents
完全进入 - 这导致AccountsActivity
在最近的记录中根本不可见。当我添加android:excludeFromRecents="true"
那么该活动就会在“最近”中可见,但仅当它位于前面时才可见。当我移到后面时,它就从“最近的”中消失了。当我删除时android:excludeFromRecents="true"
from StartActivity
声明,那么AccountsActivity
无论应用程序在前面还是在后台,在“最近”中都可见,我可以删除android:excludeFromRecents
从它的进入也完全没有任何问题。
Question
目前,我正低下头试图理解为什么它会这样 - 这是正常的(我不知道什么)还是可能是框架中的错误?有人遇到过类似的问题并可以分享经验、想法或解释吗?
Remove android:excludeFromRecents="true"
来自主要活动。
引用自android:excludeFromRecents http://developer.android.com/guide/topics/manifest/activity-element.html#exclude:
是否应排除此活动启动的任务
从最近使用的应用程序列表(“最近的应用程序”)。那是,
当此活动是新任务的根活动时,此属性
确定任务是否不应出现在最近的列表中
应用。如果任务应从列表中排除,则设置为“true”;放
如果应该包含它,则为“false”。默认值为“假”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)