android - 无法在中文自定义ROM上定期运行3分钟后台服务发送经纬度
问题描述
我已经尝试过作业调度程序和工作管理器,但它不能在打盹模式下工作,也不能在正常时间工作。我已经使用了正常的服务,这不适用于一些中国定制的 rom 手机,特别是 oppo 和 vivo。
我已使用警报管理器启动服务,但它也无法在此手机上运行任何类型的解决方案。
解决方案
如果您真的想让它在所有设备上运行,我建议您采用以下方法:
- 设置 Firebase 消息传递
- 为所有设备订阅特定主题,例如“UPDATE_LOCATION”
- 扩展
FirebaseMessagingService
和实施onMessageReceive()
- 如果您的数据消息包含更新位置的指令,请调用该方法来更新位置
onMessageReceive()
- 触发从 Firebase 到“UPDATE_LOCATION”主题的重复消息(CRON 作业或计划任务)
与您已经尝试过的方法相比,它的工作量更大,但它适用于所有手机,也适用于设备重启和系统更新后。
额外的好处是您可以从后端控制位置更新程序(而不是依赖于应用程序更新的每个设备)。
推荐阅读
- c# - 当我尝试从门户发送邮件时出现错误?
- node.js - 如何使用 truffle 框架与 Node 的以太坊智能合约交互?
- python - 如何为 Pandas DataFrame 和其他输出数据列表个性化 Json 输出
- python - 如何使 SQLAlchemy 和 Flask 使用相同的记录器?
- jquery - 链接按钮单击事件未通过 JQUERY 触发
- amazon-web-services - 我如何使用 GO 检查 aws s3 中是否已经存在 S3 存储桶
- talend - Talend Cloud - 如何处理发布到 Talend Cloud 的作业文件
- c# - 圆环图 [实时图表] 中的标签格式
- kubernetes - 可以将 Pod 视为命名空间吗?
- java - 如何从 MVVM 架构中的 Web 服务的存储库类与活动/片段进行通信