0

我正在开发带MFP集成的android本机应用程序。 我已实施MFP推送通知,它工作正常。我收到通知。但是当我点击通知我的应用程序重新启动。IBM Mobilefirst:当我点击通知时,应用程序重新启动

实际的问题是我的应用程序启动时启动了一个闪屏活动,并且正在初始化我的所有MFP内容并杀死此应用程序登录活动的活动。

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

<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活动。

因为这个原因当我点击通知时,它会杀死其他活动并再次启动splash活动,因为它被要求只在飞溅活动中接收。

所以有些人可以告诉我如何设计我的应用程序,以便我可以在应用程序的任何活动时收到通知(它不应该启动飞溅活动,而应该是在相同的活动上应用程序打开,并调用onrecieve消息方法)。

请建议。

我已经问过类似类型的问题,但可以找到问题,所以我发布这个问题与实际问题寻求解决方案。 Mobilefirst PushNotification: On using wl_anonymousUserRealm at server, app is not calling onReceive method on clicking notification

回答

0

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

我创建了一个虚拟活动,结合上面提到的代码it.`

<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()方法。所以这个特殊的活动甚至在它被打开之前就会被完成,这将打开前面的活动,并且如果它是假的,我正在支付一个支票,然后重新启动应用程序。

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

1

Setting up a GCM client in AndroidReceiving downstream messages是您将为您的方案寻找的很好的参考。

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

希望这会有所帮助!

+0

感谢您的回复。但我想了解如何使用Mobilefirst SDK。如果你有一些想法,可以在Mobilefirst方面帮助我... – Bender

相关问题