phone 空闲时收到推送通知后网络改造 2 调用
Network retrofit 2 call after push notification received when phone is idle
假设我的应用程序从带有项目 ID 的服务器接收到推送通知。收到推送通知后,必须从服务器获取项目的详细信息(使用 retrofit),然后显示 Android 通知。当 phone 不空闲时,这非常简单。
但是当,例如我锁定 phone 并保持这种状态?一段时间后 phone 进入休眠状态。应该收到推送通知。但让我心烦意乱的是 改造调用 。应用程序会在我完成 - 处理 - 改造调用之前保持清醒状态,还是在处理它时可以 "killed" ?它必须与所谓的 WakeLock 做些什么吗?或者首先使用改造是一种不好的方法?我找不到任何可以帮助我理解的好文章或例子。
听起来像是 SyncAdapter 的工作。我从来没有经历过它被过早杀死的经历,尽管它可能是这样。它已经在一个单独的进程上运行,因此不需要调用 .subscribeOn(Schedulers.io())
。该文档提供了一个准确描述您的用例的示例。 GCM 通知后的含义同步。我不会在这里复制它,您会在上面的 link 下找到它。
我的解决方案:我使用 Evernote 的 Android Job
库管理它(还有一个选项 FirebaseJob
- 在 FCM 文档页面的代码示例中提到)。使用 Android Job
我在收到推送通知后安排通话。必须使用阻塞 RX 调用,这样结果就不会超过改造响应:https://github.com/evernote/android-job/wiki/FAQ#how-can-i-run-async-operations-in-a-job
假设我的应用程序从带有项目 ID 的服务器接收到推送通知。收到推送通知后,必须从服务器获取项目的详细信息(使用 retrofit),然后显示 Android 通知。当 phone 不空闲时,这非常简单。
但是当,例如我锁定 phone 并保持这种状态?一段时间后 phone 进入休眠状态。应该收到推送通知。但让我心烦意乱的是 改造调用 。应用程序会在我完成 - 处理 - 改造调用之前保持清醒状态,还是在处理它时可以 "killed" ?它必须与所谓的 WakeLock 做些什么吗?或者首先使用改造是一种不好的方法?我找不到任何可以帮助我理解的好文章或例子。
听起来像是 SyncAdapter 的工作。我从来没有经历过它被过早杀死的经历,尽管它可能是这样。它已经在一个单独的进程上运行,因此不需要调用 .subscribeOn(Schedulers.io())
。该文档提供了一个准确描述您的用例的示例。 GCM 通知后的含义同步。我不会在这里复制它,您会在上面的 link 下找到它。
我的解决方案:我使用 Evernote 的 Android Job
库管理它(还有一个选项 FirebaseJob
- 在 FCM 文档页面的代码示例中提到)。使用 Android Job
我在收到推送通知后安排通话。必须使用阻塞 RX 调用,这样结果就不会超过改造响应:https://github.com/evernote/android-job/wiki/FAQ#how-can-i-run-async-operations-in-a-job