我的应用中有一项活动可以通过通知打开。但活动的内容取决于通知的类型。例如 : 如果我收到“通知”,应用程序会启动活动,并显示“已收到”。然后,如果我收到“b通知”,则应用再次启动活动并显示“已收到”。 问题是当活动已经启动一次,当'b通知'再次重新启动时,活动仍然显示'收到'。我如何根据收到的意图强制重新创建活动?
我尝试了intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);但这不起作用。
谢谢!
编辑:经过一些研究,我发现pendingIndent是问题所在。似乎作为PendingIntent.getActivity(ctx, 0, intent, 0)
中的参数传递的意图未更新。我刚刚添加了
intent.setAction(Long.toString(System.currentTimeMillis()));
一切都像魅力一样。
答案 0 :(得分:0)
在开始活动之前,完成“A”或“B”通知处理程序中的所有现有活动。
答案 1 :(得分:0)
当您想要重新启动应用程序然后覆盖onDestroy()并执行以下操作时调用finish()。
@override
public void onDestroy()
{
startActivity(new Intent(this,ThisDyingAcitivity.class));
}