如果活动正在运行或者使用backpress创建新活动,请将活动放在前面

fth*_*ins 8 java stack android android-intent android-activity

让我详细解释一下; 我有通知,此通知打开B activity两个案例.

案例:

  1. 如果应用已关闭.(不在后台运行)
  2. 如果应用程序打开.(背景或正面)

情况1

我点击该通知,并将其打开B activitycase-1.当我press back想要去A activity杀人B activity.我B activity不再需要了.这里的一切都很简单,没有使用flags.当我打开B activity并从这里按两次后,它会继续A activity然后关闭app.我的麻烦在于,如果我打开app手机的导航按钮(不记得这个按钮的名称)应用程序正在打开B activity.那不是我的预期.我想打开A activity.不想再看B activity了.

案例2

我点击该通知,并将其打开B activitycase-2.当我press back我想要把A activity前面,而不会产生任何新的东西.如果我再次按下B activity,两次并关闭应用程序,然后再次从手机的导航按钮重新打开应用程序,想要打开应用程序A activity.

那么我怎么能正确地做到这一点,我试图使用flags(我已经阅读过文档),但无法得到工作.什么flags应该我使用当我打开B activityonBackPress方法B activityA activity,因为我想

Que*_*ini 4

这应该可以通过添加来实现

android:launchMode="singleTask"
Run Code Online (Sandbox Code Playgroud)

到清单中的 A 活动,那么您只需从 B 活动 onBackPressed 打开 A 活动,并且您将在堆栈中只拥有一次 A 活动。

如果它没有按照您想要的方式工作,您可以创建一个扩展 Activity 的抽象类并在静态对象中处理堆栈,然后 A 和 B 必须扩展这个新类