1

当我使用以下代码开始活动时。

        intent = new Intent(MainActivity.this, New1Activity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        startActivityForResult(intent, StaticValue.REQUEST_CODE_MENU_01);

活动出现后New1Activity,打开另一个包应用程序,例如 Facebook 应用程序,然后返回(通过多任务切换或返回按钮)到我的应用程序。在这种情况下,我预计New1会给出活动,但会显示 MainActivity。

另外,AndroidManifest.xml 如下。

        <activity
            android:name="mypackage.MainActivity"
            android:screenOrientation="landscape"
            android:launchMode="singleTop"
            android:noHistory="true"
            android:label="@string/app_name"
            >
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
        <activity
            android:name=".New1Activity"
            android:launchMode="singleTop"
            android:noHistory="true"
            android:screenOrientation="landscape"
            />

由于我的应用程序性能管理,我注意到了每项noHistory活动。singleTop

每当我从其他应用程序返回时,如何保持我的活动状态?

4

1 回答 1

1

哦,我的笨蛋。

我删除noHistory="true"并且它有效。(比如说 RTFM。哈哈)

下面是从android文档中引用的,

android:noHistory 当用户离开它并且它在屏幕上不再可见时,是否应该从 Activity 堆栈中删除该 Activity 并完成(调用它的 finish() 方法) - 如果它应该完成,则为“true”,并且如果不是,则为“假”。默认值为“假”。“真”值意味着活动不会留下历史痕迹。它不会保留在任务的活动堆栈中,因此用户将无法返回它。此属性是在 API 级别 3 中引入的。

于 2013-08-18T09:53:57.577 回答