1

这个问题中,我询问了如何fragment通过推送通知在我的应用程序中打开一个。我很容易找到了解决方案,但现在我面临的问题是,当我遵循推送通知时,会创建另一个应用程序实例。

我尝试了这里给出的建议,但添加noHistory="true"到文件activityAndroidManifest,导致应用程序在我不想关闭时关闭。

按照以下步骤,我需要在第 5 步关闭应用程序的所有实例。事实上,我不需要在第 4 步创建应用程序的第二个实例。我该怎么做?

  1. 从应用程序菜单打开应用程序 -> 参见屏幕 A。
  2. 从屏幕 A 导航到屏幕 B。
  3. 推送通知到了!
  4. 打开通知抽屉,按照通知进入应用程序,参见屏幕 C。
  5. 按下设备的硬件后退按钮,直到提示退出应用程序 - 说是!
  6. 查看屏幕 B -> 打开通知时您所在的位置!

这表明当您在应用程序中的某个位置关注通知时,将创建应用程序的第二个实例。

为什么?当提示关闭应用程序并说“是”时,如何终止应用程序的第一个实例,或终止应用程序的两个实例?或者更好的是,当通知进入应用程序时,我如何不创建两个实例?

4

1 回答 1

3

我可能有点晚了,为了避免创建您的活动的新实例,您可以在 AndroidManifest 中添加一个“launchMode”,如下所示:

<activity
        android:name=".MyActivity"
        android:label="@string/app_name"
        android:launchMode="singleTop">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

如果通知打开,singleTop 将带来活动的当前实例,而不是创建一个新实例。

有关启动模式的更多信息,请参阅此链接:http: //www.intridea.com/blog/2011/6/16/android-understanding-activity-launchmode

于 2015-04-09T00:21:40.540 回答