安卓-返回按下从通知栏开始的活动



[更新如下]

我有多个活动的申请。我在处理从单击通知项开始的活动时遇到问题。

以下是应用程序结构:

  1. 对于正常的流程/工作,用户启动应用程序,活动A作为启动活动,它启动。用户可以从活动A导航到活动B(即A->B)
  2. 单击B上的后退按钮,将显示活动A

但是,问题在于从单击通知开始活动。以下是流程:

  1. 用户点击通知
  2. 活动B已启动
  3. 单击活动B上的后退按钮时,它不会启动活动A(这是可以理解的),但也不会终止活动B(将活动B移动到后台)。我想要的是,如果活动B是通过点击通知启动的,那么反按B应该会将用户带到活动A或终止活动B

请提供这方面的任何建议。

[更新]:

奇怪的是,这就是现在发生的事情。1.覆盖活动B中的onBackPressed事件。2.在这个方法中,finish()被调用。

如果应用程序已经在运行,并且单击通知时,将显示活动B,然后按下后,活动B结束。但是,如果应用程序没有运行,则单击通知会启动活动B,在按下后,它会调用backpress事件和finish()方法,但活动没有完成,而是进入后台。这真的很奇怪。或者可能是我遗漏了一些细节:(

谢谢Shrey

onBackPressed()中覆盖。

@Override
public void onBackPressed()
{
finish();
super.onBackPressed(); 
}

但是,如果用户从最近的应用程序中启动你的应用程序,他/她可以直接进入活动B。为了避免这种情况,请将以下内容添加到清单中的ActivityB中。如果您从这里导航到ActivityC,在ActivityC中按返回键将不会返回到ActivtyB,因此override onBackPressed()并通过Intent重新启动ActivityB。

<activity
android:name="ActivityB"
android:clearTaskOnLaunch="true"
android:excludeFromRecents="true"
android:finishOnTaskLaunch="true"
android:noHistory="true"/>

遵循以下流程:-

1-在活动A的oncreate()中检查isLaunchFrom。

2-如果是LaunchFrom Notification,则使用startActivityFor Result在"活动B"上导航。

希望这将帮助你,如果有任何困惑发送评论。

@Override
public void onBackPressed() {
Intent returnIntent = new Intent(B.this,A.class);
B.this.finish();
startActivity(returnIntent);
}

试试这个

相关内容

  • 没有找到相关文章

最新更新