IBM MobileFirst:如何使应用程序接收任何活动的推送通知

时间:2016-10-19 14:12:41

标签: android push-notification ibm-mobilefirst

我正在使用Android原生MFP sdk。我正在尝试实施推送通知。

根据MFP要求提供的文件

<activity
        android:name=".controllers.activities.MyActivity"
        android:launchMode="singleTask"
        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.NOTIFICATION" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

我将NOTIFICATION意图过滤器绑定到一个活动。

问题是我在我的Android应用程序中至少有10个活动,当我的应用程序处于前台时,我会收到一个推送消息方法,我可以将通知发送到应用程序。

当我的应用程序转到后台并且我收到推送通知时,那就是一个问题。我使用上述活动启动我的应用程序,但我继续进行不同的活动,然后我现在将我的应用程序发送到后台,如果我得到推送通知它登陆通知栏,直到现在一切正常。但是,当我点击通知时,它会将我的应用程序带到前台,然后转到上面提到的活动MyActivity并杀死礼物活动。

有些人可以告诉我如何阻止这种情况发生,我希望它能继续保持活动并仍然受到推动。

我知道我可以使用服务来接收它,但Mobilefirst不允许我编辑已经在Mobilefirst sdk中定义的广播和服务。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

最后我得到了一些解决方案。

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

<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>

如果我的应用在后台,应用会收到通知。单击通知时,它将打开虚拟活动,我在onResume()中调用finish()方法。所以这个特殊的活动甚至会在打开之前完成,这将打开以前的活动,我正在检查说如果它是假的,我会重新启动应用程序。

这不是一个直接的解决方案,但它现在是一个解决方法。