0

我在管理历史堆栈中的活动时遇到问题。

背景:

我有两个活动:主要和偏好。

我有在启动时启动通知的广播接收器。通知启动主要活动。标志是:Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP 用于意图和通知 Notification.FLAG_AUTO_CANCEL。(在大多数教程中,广播接收器启动了一个启动通知的服务。但我直接在广播接收器上启动通知。它对我来说很好,但只是提醒一下。)

启动偏好活动的意图没有设置标志。

问题

  • 从 Launcher 启动 Main 活动并打开 Preference 活动。
  • 在偏好活动中,单击通知再次启动主要活动。再次打开偏好活动。
  • 按 Home 并启动打开主要活动的应用程序。
  • 现在,如果我单击返回而不是退出应用程序,我将进入 Preference 活动(较早打开的活动),而另一个返回将我移至 Main 活动(较早打开的活动)。

在我的上一个应用程序中,我使用了 activityMode="singleInstance" 来摆脱从通知中创建的新活动实例。但我想用更好的方法解决这个问题,即使用正确的标志。

4

1 回答 1

0

覆盖 Main 活动中的 onBackPressed 方法以显式完成()任何 Main 和 Preference 活动。

于 2013-08-20T08:13:08.187 回答