【问题标题】:Can't run background service at a regular period of 3 minutes on Chinese custom ROM to send latitude and longitude无法在中文自定义ROM上定期运行3分钟后台服务发送经纬度
【发布时间】:2023-04-02 11:49:01
【问题描述】:

我已经尝试过作业调度程序和工作管理器,但它在打盹模式下不起作用,而且在正常时段不起作用。我使用了无法正常工作的正常服务 一些中国定制的rom手机,特别是oppo和vivo。

我已使用警报管理器启动服务,但它也无法在此手机上运行任何类型的解决方案。

【问题讨论】:

  • 请在此处放置您的一些代码。
  • public class LatLngService extends Service implements com.google.android.gms.location.LocationListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener { @SuppressWarnings("deprecation") @Override public void onCreate() { / / TODO 自动生成的方法存根 super.onCreate();如果(三十秒处理程序==空){三十秒处理程序=新处理程序(); threesecHandler.postDelayed(thirtySec, 30000*1); } }

标签: android android-service android-jobscheduler android-doze custom-rom


【解决方案1】:

如果您真的想让它在所有设备上运行,我建议您采用这种方法:

  1. 设置 Firebase 消息传递
  2. 为所有设备订阅特定主题,例如“UPDATE_LOCATION”
  3. 扩展FirebaseMessagingService并实施onMessageReceive()
  4. 如果您的数据消息包含更新位置的指令,请从onMessageReceive()调用更新位置的方法
  5. 触发从 Firebase 到“UPDATE_LOCATION”主题的重复消息(CRON 作业或计划任务)

与您已经尝试过的方法相比,它的工作量更大,但它适用于所有手机,并且在设备重启和系统更新后也适用。

额外的好处是您可以从后端控制位置更新程序(而不是依赖于应用更新的每个设备)。

【讨论】:

  • 先生;我必须以 3 分钟的定期时间间隔从 android 应用程序向服务器发送纬度和经度,以便在 Web 面板上跟踪用户的任何建议。我已经编写了服务类来将数据发送到服务器,它在股票 android 上工作正常,但在 MIUI、funtouchOS、coloros custoom rom 上却没有,它阻止后台服务
  • 没错。它适用于某些设备,但不是全部。要获得 100% 的成功率,我建议您采用上述方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 2017-08-25
  • 2010-10-02
  • 2016-09-08
  • 1970-01-01
  • 2016-04-27
相关资源
最近更新 更多