gpt4 book ai didi

java - 如何实现更新服务在后台运行?

转载 作者:行者123 更新时间:2023-11-29 22:31:19 26 4
gpt4 key购买 nike

我目前正在为 Android 操作系统开发一个显示一些数据的应用程序。为确保此数据是最新的,应用程序需要不时从远程服务器获取更新。由于数据不会经常更改,因此应每周更新一次。我想让用户能够选择更新的工作日和白天(并可选择完全禁用此功能)。

问题是:即使用户此时没有使用手机,即使手机当前处于 hibernate 状态,即使手机最近重新启动且应用程序尚未启动,也应该执行此更新还没有。

我首先想到的是在系统启动时启动的远程服务,确定运行更新的时间,设置计时器,然后等待/hibernate 以等待计时器触发。

现在,我被告知我应该使用警报计时器或某种处理程序......我对这个主题的了解越多,似乎存在越多的方法来做到这一点。

现在,我有点迷茫哪种方法最适合我...所以这是我需要的:

  • 我想在指定的时间执行一些代码。
  • 这个定时器用于触发7天后代码的执行。 (即每周在给定的工作日和时间)
  • 如果手机处于“ sleep ”状态(屏幕变暗),代码应该在不唤醒手机的情况下运行。
  • 运行代码时,不应启动任何 Activity 。即屏幕上不会弹出任何应用程序。
  • 执行的代码应该从互联网上获取一些数据。如果此时没有互联网连接可用,定时器应设置为 hibernate 30 分钟,然后重试。
  • 代码执行完成后,定时器将设置为下一个间隔时间,即7天后。
  • 计时器应该在系统启动时启动,例如,如果我重新启动手机,计时器应该确定下一个执行代码的日期并安排计时器。这必须在没有任何用户交互的情况下工作! (即没有应用程序本身启动)
  • 当“hibernate ”时,线程/服务/定时器/任何东西都应该尽可能不消耗任何系统资源......
  • 我需要的几乎是一个简单的 unix cronjob。

    我想这里有人知道 android 的“newsrob”吗?我想要实现的与 newsrob-updateservice 几乎相同。

  • 最佳答案

    Android Service + Broadcast Receiver + Alarm Service 将解决你的目的-

    您的服务将从 BroadCast Receiver 调用,在 Broadcast Receiver 中您应该注册各种事件 - BOOT_RECEIVER 、 ACTION_USER_PRESENT ,这将负责您的 ALARM 重置和更新任务。

    谢谢。

    关于java - 如何实现更新服务在后台运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3889014/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com