gpt4 book ai didi

android - 当应用程序未运行时,PendingIntent 中带有服务的通知操作不起作用

转载 作者:行者123 更新时间:2023-11-29 02:36:48 26 4
gpt4 key购买 nike

我有一个允许通过 Notification.Actions 响应通知的应用程序。所以基本上,我对此有一个待定的意向

Intent actionIntent = actionIntent = new Intent(this, NotificationActionIntentService.class);

actionPendIntent = PendingIntent.getService(
this,
requestCodeBtn,
actionIntent,
PendingIntent.FLAG_UPDATE_CURRENT
);

我在 NotificationActionIntentService 中所做的是向我的 BE 发出一个 HttpRequest,指示需要进行的更新。

注意:当应用程序在前台时,一切正常。

事情是这样的:

收到 GCM 后,当我立即按下 Notification.Action 时,一切仍然正常。

但是,当我在按下 Notification.Action 之前收到 GCM 等待大约 30 秒时,网络请求没有完成。日志仅显示它发出了网络请求。但我从来没有得到任何回应。当我在我的 BE 服务器中查看日志时。我没有收到网络请求。

但是当我手动启动应用程序时,网络会恢复。当应用程序已经在前台时,网络请求似乎正在暂停然后恢复。 (我不想要这种行为,因为我希望它只在后台执行)

更新:按下 Notification.Action 后,一两分钟后(没有打开应用程序)我收到了 java.net.ConnectException: Failed to connect日志。 (注意:我有互联网连接)。似乎该应用仅在后台运行时无法连接到网络。

PS:我使用 Retrofit 2 创建我的网络请求。我还使用 Android N 作为测试设备。

最佳答案

回答我自己的问题:

来源 -> https://stackoverflow.com/a/41281059/5285687

事实证明,当设备处于省电模式时,系统会阻止后台应用程序访问网络。

这是您可以使用的解决方案。-> https://stackoverflow.com/a/39167736/5285687

但是你需要为此提供一个android Notification。

关于android - 当应用程序未运行时,PendingIntent 中带有服务的通知操作不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46523094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com