如何在不创建应用程序的其他实例的情况下从推送通知中打开应用程序?

时间:2013-09-01 17:15:27

标签: android android-fragments notifications

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

我尝试了the suggestions given here,但在noHistory="true"文件中的activity添加了AndroidManifest,导致该应用在我不希望关闭时关闭。< / p>

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

  1. 从应用程序菜单打开应用程序 - &gt;见屏幕A.
  2. 从屏幕A导航到屏幕B.
  3. 推送通知到达!
  4. 打开通知抽屉,按照通知进入应用程序,参见屏幕C.
  5. 按设备的硬件返回按钮,直到系统提示退出应用程序 - 说是!!
  6. 参见屏幕B - &gt;你打开通知时的位置!
  7. 这表明当您在应用程序中的某个位置跟踪通知时,将创建应用程序的第二个实例。

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

1 个答案:

答案 0 :(得分:2)

我可能有点晚了,为了避免创建一个新的活动实例,你可以添加一个&#34; launchMode&#34;在AndroidManifest中像这样:

<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将带来活动的当前实例,而不是创建新活动。

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