强制重新启动Android活动

时间:2013-07-23 19:18:56

标签: android android-intent android-activity

我的应用中有一项活动可以通过通知打开。但活动的内容取决于通知的类型。例如 : 如果我收到“通知”,应用程序会启动活动,并显示“已收到”。然后,如果我收到“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()));

一切都像魅力一样。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

@override
public void onDestroy()
{
   startActivity(new Intent(this,ThisDyingAcitivity.class));
}