如果应用收到推送通知,我会调用一个活动。该活动以FLAG_ACTIVITY_NEW_TASK
和FLAG_ACTIVITY_CLEAR_TOP
开始。活动,我们称之为'A'显示用户界面并在一段时间后结束。在这一点上有活动堆栈的问题。
场景:
经过调试,我发现系统在完成活动A后调用了活动B的onResume
方法。
如果应用程序从后台启动,我怎么能让应用程序保持在后台?我应该更改活动A的意图标志吗?
在您的情况下,您可以通过两种方式实现此目的
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();
。这将关闭应用程序而不是前景。