Android Asynctask vs Service vs Scheduled Jobs

Posted

技术标签:

【中文标题】Android Asynctask vs Service vs Scheduled Jobs【英文标题】:Android Asynctask vs Service vs Scheduled jobs 【发布时间】:2018-02-18 16:45:24 【问题描述】:

我有点了解这些的优缺点。

我目前正在开发一个 RSS 提要列表,并为此使用异步任务。

我遇到了一位 android 开发人员,他建议我使用服务,因为如果应用程序在后台,asyntask 会停止。

但后来我开始意识到 RSS 提要的更新并不那么重要,因此我为什么要通过运行服务来减慢我的用户速度呢?

我知道计划的作业也可能有助于提高设备性能,但更新 RSS 真的很重要吗?

注意:内容的重要性不相关。我只是想了解我是否忘记了一些可以证明服务合理性的基本做法。

底线:当涉及到相对重要的任务(例如更新 RSS 提要)时,运行可能会降低设备速度的服务是否值得? 难道我们不能只使用 asynctask 并承认如果将应用程序放在后台并不重要吗?

【问题讨论】:

【参考方案1】:

就实践而言,除了使用 AsyncTask 或服务之外,您似乎别无选择。但是,让我们从另一个角度来看待它,而不是手头的 RSS 提要的重要性。与设备可用的带宽相比,传输的数据量可能较低。因此,在您的 AsyncTask 可以更新 RSS 提要之前,您的应用程序进入后台的可能性可能太小了。您还可以在 onResume() 中启动 AsynTask,以确保无论何时您的应用程序进入前台,您的数据都是最新的,然后在前台定期检查 RSS 提要的更新。 很抱歉,很长的帖子,但我要说的是,最后你应该使用的资源量取决于你彻底研究你的领域和你的确切用例。

【讨论】:

以上是关于Android Asynctask vs Service vs Scheduled Jobs的主要内容,如果未能解决你的问题,请参考以下文章

Android面试Android异步任务AsyncTask

Android自助餐之AsyncTask

android:如果一个 AsyncTask 已经在运行,则阻止另一个 AsyncTask 执行

android asynctask怎么用

Android AsyncTask分析

android中 如果要你来设计AsyncTask,你怎么设计