Android 按back键时不返回到父活动
我有两个活动,A(根活动)和B,从A启动。从B按返回到A,除了1个情况<代码>如果我在B中,转到主屏幕,从最近的应用程序再次启动应用程序,B出现在前台,但按“后退”将导致主屏幕而不是A。如果我通过从图标启动而不是从最近的应用程序返回应用程序,则会显示活动A,可以说,这是正确的(尽管应显示B,并且从B向后按压应导致A) 活力A: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_
<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);
}