2013-07-23 103 views
2

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

我试过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

难道你没有得到'onNewIntent()'你可以使用的任何东西吗?你有多少个'Activity'实例? – gunar

+0

不知道有多少,这取决于收到的通知。 –

+0

下面的回答可以帮助你: http://stackoverflow.com/a/3974828/1534762 http://stackoverflow.com/a/3419987/1534762 – Chandru

回答

0

开始活动前,完成'A'或'B'通知处理程序中的任何现有活动。

0

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

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