问题标签 [gcm-network-manager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
214 浏览

android - GCMNetworkManager OneOffTask 执行窗口

如果 OneOffTask 需要连接网络但手机在执行窗口期间从未获得网络连接,会发生什么情况?这种情况如何处理或者 GCMNetworkManager 会通过重新调度任务来自动处理吗?

0 投票
1 回答
1035 浏览

android - GcmNetworkManager 定期任务未在某些设备上触发

GcmNetworkManager用来运行定期同步任务以将数据推送到我的服务器。但是,在发布应用程序后,我注意到在某些手机中,从不调用周期性任务。我已经调试了该应用程序是其中一些手机,并没有发现任何异常,当我安排任务时没有任何错误或日志,但它们根本不会被调用。

我的大多数用户都有Infinix手机。

有什么想法可能是造成这种情况的根本原因吗?

这是我安排任务的代码:

0 投票
0 回答
215 浏览

android - 如何使用 GCM 网络管理器找到断开的互联网?

我在 android 中使用 GCM 网络管理器来通知我互联网是否可用。但是如何通知互联网是否断开连接。有什么办法。提前致谢。一件事是我不想使用广播接收器,因为 NETWORK_CHANGED 广播接收器在 android Nougat 7.0 中已被弃用

0 投票
1 回答
128 浏览

android - GCMNetorkManager PeriodicTask 工作时间为 1 分钟,但不工作时间为 2

我已经实现了 GCMNetworkManager PeriodicTask

我已根据手册仔细检查了所有步骤,已阅读 GCMNetMan 的所有文档

一分钟的设定时间 - 完美运行。设置 2 或 5 分钟 - 没有任何效果。

Kotlin 中的代码:

0 投票
0 回答
164 浏览

android - RESULT_RESCHEDULE 在 GCMNetworkManager 中如何工作?

起初我想,这和周期性任务RESULT_RESCHEDULE是一样的RESULT_SUCCESS

然后我阅读了文档,它说

RESULT_RESCHEDULE 表示任务执行失败,必须通过退避重试。

我一头雾水,这是什么意思?在当前情况下,什么是“退避”?

0 投票
1 回答
146 浏览

android - Android GcmNetworkManager PeriodicTask - setRequiredNetwork 行为

我有一个 Android 应用程序,它实现GcmNetworkManager了安排一个PeriodTask.

在 的文档PeriodTask,它对 的行为进行了以下说明setRequiredNetwork()

设置您的任务运行所需的网络状态。如果指定的网络不可用,您的任务将在它变得可用之前不会被执行

所以我的问题是,当网络可用时任务会立即触发吗?还是在下一个setPeriod()间隔?

0 投票
2 回答
749 浏览

android - 如何在 ionic 上配置 OneSignal Push,以便推送通知仅打开应用程序主页

我已经在我的 ionic 应用程序上安装了 onesignal push,它运行良好,但是当我发送网络推送并单击我的 Android 设备上的特定通知时,它会将我带到外部浏览器以打开该通知。

现在我想要从一个信号发送到我的应用程序的任何类型的通知,它应该只打开应用程序,而不是浏览器。

0 投票
4 回答
1497 浏览

java - 如何在android中安排一个任务,该任务将在互联网可用后立即运行并在失败时重新安排它?

需要调度器

  • Run task immediately after net is available
  • Reschedule task if it fails because of some problems.
  • should handle cases of broadcast receiver to know if connection available
  • No delay in execution if the internet is already available not like GCMNetworkManager's OneOfTask which take at least 30 seconds to execute the scheduled task

我尝试了GCM 网络管理器的 OneOfTask来处理它,但即使互联网可用,也至少需要 30 秒才能执行。

是否有任何其他调度程序可以将所有上述任务合二为一。

0 投票
2 回答
454 浏览

android - GCM 网络管理员失去工作

我正在尝试使用 GCM 网络管理器将日志发送到后端服务。我们大约每小时都会运行一个警报,它会创建一个 OneoffTask,在执行该任务时,它将使用日志消息调用后端服务。

这行得通,但是丢失了大量的任务(超过一半)。起初,我认为它与我们的后端或网络有关,但在添加了大量文件日志记录后,事实证明服务中的 onRunTask 从未为这些任务触发(但它们肯定会被安排。为什么这些丢失了吗?是我误解了 API,还是 OneoffTasks 根本不可靠?

这是 OneoffTask 的调度方式:

同样,这不起作用,而只是部分消息。对于随后丢失的消息,上面的代码 肯定会执行(我添加了文件日志来验证这一点),但从来没有为丢失的消息触发相应的 onRunTask。

我已经证实:

  1. 根据网络管理器实施指南 ( https://developers.google.com/cloud-messaging/network-manager )更新清单
  2. AvroLogService(我的服务)扩展了 GcmTaskService
  3. 它覆盖 onRunTask
  4. 该应用程序具有 RECEIVE_BOOT_COMPLETED 权限。
  5. AvroLogService 不会覆盖 onStartCommand。

我迷路了。有人可以分享对此的见解吗?

0 投票
1 回答
79 浏览

android - 何时会再次执行 oneOffTaks,结果为 GcmNetworkManager.RESULT_RESCHEDULE

所以来自 GcmNetworkManager 的 Android SDK

公共静态最终 int RESULT_RESCHEDULE

表示任务执行失败,必须通过退避重试。

在我的服务里面

当执行失败时,会返回RESULT_RESCHEDULE,并重试。所以我想知道什么时候会重试?

谢谢