Activity A 是一个闪屏。 Activity B 是一个单任务菜单屏幕。 Activity C 是一个没有历史记录的屏幕,它从图库中选择一张照片,并具有选择照片的内置 Intent 。 Activity D 是一个操作照片的屏幕。
我遇到的问题是,当我在 Activity D 中并选择主页按钮时,如果我选择再次启动应用程序,它会返回到 Activity A 以再次启动 Activity B,而不是在我所在的位置启动 Activity D离开了。但是,如果我使用最近的应用程序,它会按预期切换回 Activity D。因此,我的设置方式肯定存在一些容易出错的地方。但是,我应该期望它在这两种情况下都返回到 Activity D,以便用户可以继续返回到照片查看屏幕(Activity D)。
想法?
<activity
android:name="ActivityA"
android:theme="@style/Theme.CustomDefaultStartup"
android:noHistory="true"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="sensorLandscape"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="ActivityB"
android:theme="@style/Theme.CustomDefault"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter" />
</activity>
<activity
android:name="ActivityC"
android:theme="@style/Theme.CustomDefault"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name">
</activity>
<activity
android:name="ActivityD"
android:theme="@style/Theme.CustomDefault"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name">
</activity>
最佳答案
显然是 Activity A 上的 android:launchMode="singleTask"
导致了问题。一旦删除了闪屏中的 singleTask,行为就会按预期返回。不确定启动屏幕的 singleTask 来自哪里,但它可能是应用程序中保留了一段时间的错误。
删除后,按下主页按钮并返回应用程序后,Activity D 不再启动启动屏幕和以下菜单。虽然我并不完全理解为什么这会在事件的生命周期中导致它,但这为我解决了这个问题。
关于android - 按主页按钮并返回后,不会返回到之前的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19909731/