IBM Mobilefirst:当我单击通知时应用程序重新启动

IBM Mobilefirst : App gets restarted when I click on the Notification

我正在使用 MFP Integrated 开发 android 本机应用程序。 我已经实施了 MFP 推送通知并且工作正常。我收到通知。但是,当我单击通知时,我的应用程序会重新启动。

实际问题是我有一个飞溅 activity,它在我的应用程序启动时启动,我正在初始化我所有的 MFP 东西并杀死它 activity 让应用程序登录 activity.

在我的清单文件中,我定义我的接收器如下。

<activity
            android:name="SplashActivity"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
            <action android:name="com.mypackage.app_name.NOTIFICATION" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        </activity>

接收者在我的 splash 中定义 activity 但我正在完成这个 activity 并打算登录 activity 然后从登录到其他活动。现在 splash activity 在每次应用启动时只调用一次。

出于这个原因,当我单击通知时,它正在终止其他活动并再次启动启动 activity,因为它被要求仅在启动 activity.

中接收

有人可以告诉我如何设计我的应用程序,以便在我使用应用程序的任何 activity 时都能收到通知(它不应该启动启动画面 activity 但是相反,它应该在应用程序打开的同一 activity 上,并调用 onrecieve 消息方法)..

求推荐。

我以前问过类似的问题,但当时能找到问题所在,所以我将这个问题与实际问题一起发布,寻求解决方案。

Setting up a GCM client in Android and Receiving downstream messages 是您将在您的场景中寻找的重要参考。

您必须定义接收消息所需的 GCM 接收器和服务。这将极大地帮助您在任何 Activity 中接收消息(因为 Service 不需要任何 UI,而 BroadcastReceiver 将有助于 CPU处于唤醒状态,因此侦听器服务将完成其任务)。

希望对您有所帮助!

终于找到了解决办法。

我创建了一个虚拟 activity 并将上面提到的代码绑定到它。`

<activity
    android:name=".controllers.activities.DummyActivity"
    android:launchMode="singleTask"
    android:theme="@style/AppTheme.NoActionBar">


    <intent-filter>
        <action android:name="com.mypackage.NOTIFICATION" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

如果我的应用程序在后台运行并且应用程序收到通知。单击通知时,它将打开虚拟 activity,我正在调用 onResume() 中的 finish() 方法。因此,这个特定的 activity 甚至会在打开之前完成,这将打开之前的 activity 我正在检查是否已启动,如果它是假的,我将重新启动该应用程序。

这不是一个直接的解决方案,但目前可以解决。