android - GCM/FCM 替代方案如何在内部工作以克服操作系统挑战
问题描述
对于没有 Google Play 服务的设备,有几个选项可以接收推送通知。这些选项可以是中国的百度、Pushy、Facebook 自己的推送通知等。
但我无法理解如何克服这两个主要问题:
- 由于我们无法在设备级别拥有某种“SDK”,例如 Google Play 服务,我们唯一的选择是将其集成到应用级别。这意味着,我们不能像 GCM 那样对所有应用程序都有一个到推送服务器的套接字连接。相反,我们需要与安装的应用程序数量一样多的套接字连接。
- 即使我们密切关注第 1 个问题,为了使该连接能够在 Doze 和 App Standby 中存活,我们也必须在前台服务中处理它们,这是即使在杀死应用程序后也能保证其运行的唯一方法,或者当设备进入打盹状态。但是为什么我们在中国手机的通知栏中看不到前台服务的通知,或者使用Pushy的应用程序?他们只是定期轮询推送服务器吗?使用 AlarmManager(用 setAndAllowWhileIdle 标记)和 BroadcastReceiver ?这将过于耗费资源且效率低下。
解决方案
推荐阅读
- javascript - 使用条件导致 React 渲染限制错误
- python - 如何格式化 json 以便我可以解析浮点数和字符串
- javascript - 在 discordjs 中找不到 mysql 语法错误
- java - Java 生产者消费者 IllegalMonitorStateException
- flutter - 自动热重启和重新加载停止发生 - Flutter/VS Code
- c# - 是否可以添加
控制到 ? - c# - 在 Xamarin 表单中的 AppsContext.Instance 中保留数据
- for-loop - 控制 awk 数组输出
- python - 如何使用硒登录
- json - 在 Confluent 平台模式注册表中使用 Json 格式?