【问题标题】:Force relaunch of an activity Android强制重新启动活动 Android
【发布时间】:2013-07-24 05:37:04
【问题描述】:

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

一切都像魅力一样。

【问题讨论】:

  • 您在onNewIntent() 中没有得到任何可以使用的东西吗?你有多少个Activity 实例?
  • 不知道有多少,这取决于收到的通知。
  • 以下答案可能对您有所帮助:*.com/a/3974828/1534762*.com/a/3419987/1534762
  • 刚刚编辑了问题

标签: android android-intent android-activity


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      最近更新 更多