完成从推送通知开始的活动后如何将应用程序发送到后台

问题描述 投票:2回答:1

如果应用收到推送通知,我会调用一个活动。该活动以FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_CLEAR_TOP开始。活动,我们称之为'A'显示用户界面并在一段时间后结束。在这一点上有活动堆栈的问题。

场景:

  1. 该应用程序处于后台,其他活动为“B”
  2. 然后,应用程序收到推送通知并启动活动A.
  3. 完成相关操作后,应用程序将完成活动A.
  4. 然后返回活动B并在收到推送通知之前,即使应用程序处于后台,也会保持在前台。

经过调试,我发现系统在完成活动A后调用了活动B的onResume方法。 如果应用程序从后台启动,我怎么能让应用程序保持在后台?我应该更改活动A的意图标志吗?

android android-intent intentfilter back-stack activity-stack
1个回答
0
投票

在您的情况下,您可以通过两种方式实现此目的

1-来自清单文件,其中包含活动标记android:noHistory="true"

2-当您正在查看下面的活动设置标志时,从代码中

Intent mIntent = new Intent(context, Youractivity.class); 
mIntent.setFlags(mIntent.getFlags() | Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(mIntent);

有关更多信息,请查看developers link

你可以做的另一件事是在通知活动中使用this.finish()而不是this.finishAffinity();。这将关闭应用程序而不是前景。

© www.soinside.com 2019 - 2024. All rights reserved.