1

我有 2 个活动,A(根活动)和从 A 启动的 B。从 B 按下返回到 A,除了 1 种情况。If I am in B, go to home screen, launch the app again from recent apps, B comes to foreground but pressing back leads to home screen instead of A.如果我通过从图标而不是从最近的应用程序启动返回应用程序,则显示活动 A,比方说,这是正确的(尽管应该显示 B 并且从 B 按下应该会导致 A)。

活动A:

<activity android:name=".AudioRecTabsActivity"
            android:label="@string/app_name"
            android:launchMode="singleInstance">
            <!--  android:configChanges="keyboardHidden|orientation">-->
             <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

        </activity>

活动 B:

<activity android:name=".settings.SettingsActivityOld"
            android:label="@string/settings_activity_title"/>

从 A 启动动作 B:

intent = new Intent(this, SettingsActivityOld.class);
startActivity(intent);
4

3 回答 3

3

如果您正在使用,这是完全正常的,android:launchMode="singleInstance"因为 Activity B 在新任务中运行,而 Activity A 是其任务中唯一的 Activity。检查此链接

于 2013-08-01T13:11:42.953 回答
0

尝试在活动 B 中调用Activity#finish()。它应该从活动堆栈中删除当前活动并返回到上一个活动。

于 2013-08-01T13:08:40.343 回答
0

覆盖 B 活动的 backpress 方法并从那里开始活动 A

@Override
public void onBackPressed() {
    Intent intent = new Intent(this, A.class);
    startActivity(intent);

}
于 2013-08-01T13:12:44.923 回答