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 我正在检查是否已启动,如果它是假的,我将重新启动该应用程序。
这不是一个直接的解决方案,但目前可以解决。
我正在使用 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 我正在检查是否已启动,如果它是假的,我将重新启动该应用程序。
这不是一个直接的解决方案,但目前可以解决。