2

我的应用中有一个活动,可以通过通知打开。但是活动的内容取决于通知的类型。例如:如果我收到“通知”,应用程序会启动活动,并且此活动会显示“已收到”。然后,如果我收到“b 通知”,应用程序会再次启动活动并显示“b received”。问题是当活动已经启动一次时,当'b通知'再次重新启动它时,活动仍然显示'a received'。我如何根据收到的 Intent 强制重新创建活动?

我试过 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()));

一切都像魅力一样。

4

2 回答 2

0

在开始活动之前完成“A”或“B”通知处理程序中的任何现有活动。

于 2013-07-23T19:31:33.857 回答
0

当您想重新启动应用程序时调用 finish() 然后覆盖 onDestroy() 并执行以下操作。

@override
public void onDestroy()
{
   startActivity(new Intent(this,ThisDyingAcitivity.class));
}
于 2013-07-23T19:34:58.983 回答