Android 按back键时不返回到父活动

Android 按back键时不返回到父活动,android,android-intent,android-activity,Android,Android Intent,Android Activity,我有两个活动,A(根活动)和B,从A启动。从B按返回到A,除了1个情况如果我在B中,转到主屏幕,从最近的应用程序再次启动应用程序,B出现在前台,但按“后退”将导致主屏幕而不是A。如果我通过从图标启动而不是从最近的应用程序返回应用程序,则会显示活动A,可以说,这是正确的(尽管应显示B,并且从B向后按压应导致A) 活力A: <activity android:name=".AudioRecTabsActivity" android:label="@string/app_

我有两个活动,A(根活动)和B,从A启动。从B按返回到A,除了1个情况<代码>如果我在B中,转到主屏幕,从最近的应用程序再次启动应用程序,B出现在前台,但按“后退”将导致主屏幕而不是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。它应该从活动堆栈中删除当前活动,并将您返回到上一个活动。

如果您使用的是
android:launchMode=“singleInstance”,这是完全正常的
因为活动B在新任务中运行,而活动a是其任务中唯一的活动。请选中此项

覆盖B活动的backpress方法,然后从那里启动活动a

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

}

他可以从B返回到活动A,而不是从最近的应用程序返回。因此,覆盖不会出现在图片中。我认为super已经完成了活动#finish()。onbackPressed()尝试从清单中删除singleInstance并重试。您是对的,使用singleTop从活动A更改singleInstance解决了我的问题。
intent = new Intent(this, SettingsActivityOld.class);
startActivity(intent);
@Override
public void onBackPressed() {
    Intent intent = new Intent(this, A.class);
    startActivity(intent);

}