我在管理历史堆栈中的活动时遇到问题。
背景:
我有两个活动:主要和偏好。
我有在启动时启动通知的广播接收器。通知启动主要活动。标志是:Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP 用于意图和通知 Notification.FLAG_AUTO_CANCEL。(在大多数教程中,广播接收器启动了一个启动通知的服务。但我直接在广播接收器上启动通知。它对我来说很好,但只是提醒一下。)
启动偏好活动的意图没有设置标志。
问题
- 从 Launcher 启动 Main 活动并打开 Preference 活动。
- 在偏好活动中,单击通知再次启动主要活动。再次打开偏好活动。
- 按 Home 并启动打开主要活动的应用程序。
- 现在,如果我单击返回而不是退出应用程序,我将进入 Preference 活动(较早打开的活动),而另一个返回将我移至 Main 活动(较早打开的活动)。
在我的上一个应用程序中,我使用了 activityMode="singleInstance" 来摆脱从通知中创建的新活动实例。但我想用更好的方法解决这个问题,即使用正确的标志。