【问题标题】:Service with AsyncTask performing a request every X time带有 AsyncTask 的服务每 X 次执行一次请求
【发布时间】:2013-01-17 14:49:15
【问题描述】:

我想放心,我这样做是最佳实践方式:
我有一个在服务器上更改顺序的列表,因此,我希望每 20-30 秒一次。执行请求以查看订单是否有任何更改。所以,我创建了一个Service,它使用ListView 绑定到Activity,并且每20-30 秒提供一次服务。使用AsyncTask 执行请求。
我选择使用Service 执行它,因为我希望列表不断更新,即使应用程序在后台,而AsyncTask 是因为我不希望它在主线程上执行。

这是正确的做法吗?

提前谢谢你,
丹。

【问题讨论】:

    标签: android android-asynctask android-service


    【解决方案1】:

    它会起作用,但你的应用会做很多不必要的工作。这会影响电池寿命。除此之外,根据文档,如果您使用设备无线电,它至少会保持全功率 20 秒,这对电池也没有好处。您有以下选择:

    1. 使用Google Cloud Messaging。它将允许您仅在确实需要时执行更新。
    2. 如果您不想或不能使用 GCM,请关注this guide 以优化网络访问。首先增加更新间隔(至少到 4 分钟)。

    【讨论】:

    • 我不能增加更新间隔,因为每 20-30 秒应该有一个新信息。 (甚至更少,但这是我可以承受我的应用程序不更新的时间,也许我可以将它增加到最小最大值,我还不知道),这也是我不想的原因使用 GCM,因为会有不断的更新。问题是这些限制,这是正确的方法吗?
    • 好吧,如果你有这样的限制,我不能提出更好的建议。
    • 好的,谢谢您的回答!
    猜你喜欢
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 2020-02-02
    • 2019-06-06
    相关资源
    最近更新 更多