【问题标题】:Is there a way for fetching data when app closed and store it in db?有没有办法在应用程序关闭时获取数据并将其存储在数据库中?
【发布时间】:2020-02-11 07:57:54
【问题描述】:

我正在开发新闻阅读器应用程序,现在我想实现这一目标: 每天有一次互联网连接或特定时间(例如 23.00)我的应用程序将获取所有新新闻,然后将其存储在数据库中。在应用程序内部,我正在使用改造来使用 mvvm 模式获取和存储空间。我怎样才能做到这一点?任何建议表示赞赏。

【问题讨论】:

    标签: android


    【解决方案1】:

    您可以通过在PeriodicWorkRequest.Builder 中使用弹性周期来实现此目的。 例如,如果您想在重复间隔结束时(比如 8 小时)在 15 分钟内运行您的 Worker,代码将如下所示:

    val periodicRefreshRequest = PeriodicWorkRequest.Builder(
                RefreshWorker::class.java, // Your worker class
                8, // repeating interval
                TimeUnit.HOURS,
                15, // flex interval - worker will run somewhen within this period of time, but at the end of repeating interval
                TimeUnit.MINUTES
        )
    

    【讨论】:

      【解决方案2】:

      您可以通过 Android 中的 Service 来执行此操作,它具有以下功能 -

      前景

      前台服务执行一些用户可以注意到的操作。例如,音频应用程序将使用前台服务来播放音轨。前台服务必须显示通知。即使用户没有与应用交互,前台服务也会继续运行。

      背景

      后台服务执行用户不直接注意到的操作。例如,如果应用使用服务来压缩其存储空间,那通常是后台服务。

      您可以在下面的链接中阅读更多相关信息 -

      Service in Android

      【讨论】:

      • 服务不是一个好方法,因为你必须一直运行它最好的解决方案是 Content Provider /Content Resolver stackoverflow.com/a/40562442/2692102
      • 为什么我们必须一直运行而无需在您工作完成时停止服务,就这么简单。
      • @Hanzala 我可以使用内容提供者实现我想要的一切吗??
      • 解释一切
      • 为此任务使用工作管理器或作业计划程序。每次在后台运行服务是不好的方法。 stackoverflow.com/questions/50357066/…
      猜你喜欢
      • 2013-11-11
      • 2017-01-29
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      • 2021-10-21
      • 2020-04-07
      • 2014-02-27
      • 1970-01-01
      相关资源
      最近更新 更多