【问题标题】:Best solution for my task: Thread, AsyncTask or Service? [closed]我的任务的最佳解决方案:线程、AsyncTask 还是服务? [关闭]
【发布时间】:2018-03-01 08:56:03
【问题描述】:

我有一个用于创建和编辑申请的 Android 应用程序。所有数据都将存储在我的服务器上。

一个问题是:应用程序应该通过生成查询定期从服务器获取有关某些记录存在的信息。对服务器的查询之间的时间间隔应该是大约 30 秒。

1)您能否建议,解决此问题的最佳方法是什么?也许我错过了更好的选择?

目前我正在考虑选择以下选项:

  • 线程
  • 异步任务
  • 服务

2) 对于服务,我应该在主线程中使用它还是将它放在另一个线程中?

3) 另外,据我所知,当用户旋转手机时,Thread 或 AsyncTask 会通过 Activity 重新创建。也许我可以将Moxy library 与 AsyncTask 一起使用,而不用担心 Activity 的重新创建?

提前谢谢你。

【问题讨论】:

  • 如果您知道如何部署 websocket 并使用它,我建议您部署一个 websocket 并将您的 android 应用程序连接到它,这是我的想法...
  • 如果您想定期从服务器获取信息,那么只有一种方法是服务!
  • 网络套接字检查继续狡猾意味着定期??不需要服务?
  • 我认为他的服务目的是android服务
  • 那么你想每 30 秒调用一次服务器吗?

标签: android multithreading android-moxy


【解决方案1】:

如果您需要在后台运行任务,那么服务是比AsyncTask 最好的选择,如果您想每 30 秒运行一次任务,那么您可以使用警报管理器,它适用于间隔任务,但警报管理器会消耗很多电池。

计划任务还有另一个最佳解决方案是JobSchedular

报警管理器

https://stackoverflow.com/a/8801990/6676466

JobSchedular // 我建议这样做

Complete Job Scheduler Example

我建议你阅读和使用JobSchedular

【讨论】:

  • 看起来 JobSchedular 真的不适合这么短的时间间隔。从 API 26 (Oreo) 开始,为周期性作业设置小于 15 分钟的周期将至少在 15 分钟后执行。直到 Android 5.1.1 - 至少 60 秒后。
【解决方案2】:

我建议你使用Service,它可以在后台无限期地运行。并且你的运河从服务中产生了一个线程。

【讨论】:

    猜你喜欢
    • 2012-12-06
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    • 2011-10-15
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    • 2011-11-14
    相关资源
    最近更新 更多