Android 当应用程序位于后台时,最近的活动不可见 问题说明

Android 当应用程序位于后台时,最近的活动不可见 问题说明,android,android-manifest,android-recents,Android,Android Manifest,Android Recents,在我的一个应用程序中,我看到了非常奇怪的行为:当我的应用程序运行在前台(是最上面的一个)时,我可以在系统的最近部分看到它的活动。但当我把它放到后台时,刚才列出的同一个活动(即,AccountsActivity)就不再出现在最近的活动中。我的清单文件的相关部分: <application android:name=".WebnetApplication" android:allowBackup="false" android:allowClearUserData="t

在我的一个应用程序中,我看到了非常奇怪的行为:当我的应用程序运行在前台(是最上面的一个)时,我可以在系统的最近部分看到它的活动。但当我把它放到后台时,刚才列出的同一个活动(即,
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
,以确保我不会调用任何可能影响最近的应用程序。没有比这更好的了

然后我开始剥离清单文件,看看是否会有什么变化。正如所料,罪犯潜伏在那里,但我仍然不清楚原因。开始时,清单中的
AccountsActivity
条目根本没有
android:excludeFromRecents
条目-这导致
AccountsActivity
在Recents中根本不可见。当我添加了
android:excludeFromRecents=“true”
之后,活动在Recents中变得可见,但只有当它在前面时才可见。当我移到后面时,它从最近消失了。当我从
StartActivity
声明中删除
android:excludeFromRecents=“true”
时,
AccountsActivity
在Recents中变得可见,无论应用程序在前面还是在后台,我也可以从其条目中完全删除
android:excludeFromRecents

问题:
目前,我正低头试图理解为什么它都是这样运行的——这是正常的(我不知道什么),还是可能是框架中的bug?任何人都面临类似的问题,可以分享经验、想法或解释?

从主要活动中删除
android:excludeFromRecents=“true”

引自:

是否应排除此活动启动的任务 从最近使用的应用程序列表(“最近的应用程序”)。就是, 当此活动是新任务的根活动时,此属性 确定任务是否不应出现在最近的任务列表中 应用程序。如果任务应该从列表中排除,则设置“true”;设置 如果应该包括,则为“false”。默认值为“false”


您在多个设备上试用过吗?在敲打你的头之前,一定要先确认一下。这一点很好,但是是的,我试着在许多设备和模拟器上重新编程,而且这种情况一直都在发生。它发生在2.x和4.x上。我没有尝试过,如果我的“修复”解决了2。x的问题,但它对4.XI AM Press确实是你的失误是Android:启动模式=“StutLeTASK”和EXCultDeFrutsRealSouthLoad将永远不会留下一个堆栈,排除排除了一个可能在堆栈上的不存在,但是我保留了<代码> Android:“singleTask”-仅从
StartActivity
中删除了
excludeFromRecents
,并且所有工作都正常。这就是我现在处于WTF模式的原因。
AccountsActivity
的入口点是什么?从我所看到的,这就是
StartActivity
->
AccountsActivity
。不,当这个活动是一个新任务的根活动时,“任务”这个词是我在正确的上下文中没有发现的。谢谢你指出这一点。