我正在使用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中定义的广播和服务。
我该怎么做?
答案 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()方法。所以这个特殊的活动甚至会在打开之前完成,这将打开以前的活动,我正在检查说如果它是假的,我会重新启动应用程序。
这不是一个直接的解决方案,但它现在是一个解决方法。