2

我遵循了 PushSharp 存储库中的示例: PushSharp Android Client Sample

如果应用程序打开或在后台(通过点击主页或后退按钮),一切都很好。但是,如果我通过在应用程序管理器中将其滑开来关闭应用程序,我将不再收到通知。

我的假设是,由于 PushHandlerService 被标记为 [Service],即使应用程序关闭并继续侦听通知,它也会保持打开状态。有没有办法在应用程序关闭的情况下继续接收通知,还是我做错了?

我会包含代码,但我所得到的几乎完全来自上面链接中的示例。

编辑:

即使设备已经注册,我也尝试在应用程序启动时触发 PushClient.Register,希望这会在未启动的情况下启动 PushHandlerService。即使在每次启动应用程序时重新注册,当应用程序关闭时我仍然没有收到通知。

4

4 回答 4

6

您是否尝试过调试或发布模式?当我在调试模式下启动我的应用程序时,我也遇到了同样的情况。

于 2013-10-21T09:00:42.557 回答
1

因此,事实证明,某些 Android 设备的电池或受保护的应用程序设置会导致通知不显示。例如,在华为 EMUI 设备中,进入“受保护的应用程序”设置并打开受保护的开关可以使应用程序即使在应用程序终止后也能收到推送通知。

于 2020-11-01T07:32:01.477 回答
0

This behavior might be device specific. I experienced the same with Huawei devices using EMUI. Could solve it by adjusting the battery saving settings.

See this question: Remote Push Notifications and terminated Apps

于 2017-06-21T08:41:27.753 回答
0

如果您希望即使应用程序被终止,您的服务也能继续运行,那么您应该在 AndroidManifest.xml 文件的服务标签中添加以下内容。

android:stopWithTask="false"

或者

如果您使用 GCM 进行推送通知并希望在通知到达时运行服务,那么您必须在 AndroidManifest.xml 文件中将您的服务注册为 GCM 接收器。您可以通过添加以下代码来做到这一点

<service
    android:name=".yourPushService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />
    </intent-filter>
 </service>
于 2018-10-26T11:14:06.547 回答