在 AsyncTask 或 Service 上下载文件?
Posted
技术标签:
【中文标题】在 AsyncTask 或 Service 上下载文件?【英文标题】:Download file on AsyncTask or Service? 【发布时间】:2016-11-22 18:36:03 【问题描述】:在 android 上下载的最佳方法是什么。您将使用 AsyncTask 或 Service。我看到几个例子是由两种方法组成的,但最好的方法是什么?
【问题讨论】:
【参考方案1】:这不是正确的问题,答案可能是两者兼而有之。 AsyncTask 是一个单独的执行线程。服务只是您的应用程序的一部分,它在后台运行并且可以在活动结束后继续存在。
您需要在非 UI 线程上下载任何文件,因此无论您是否使用 Service,Thread 或 AsyncTask 都是必需的。因此,您将始终使用这两者之一。是否也使用服务的问题是即使用户转到另一个活动,您是否需要下载文件的问题(您可能想要使用服务还有其他一些原因,但这是主要的)。
【讨论】:
【参考方案2】:我建议,这取决于文件的大小。对于小内容文件,asynch
很好,但如果要成为longer task
,那么你可以选择service
,因为服务还附带restart feature
( start_sticky) 以防用户杀死您的应用程序或您的应用程序在内存危机的情况下被 android 操作系统杀死(LMK :低内存杀手)
【讨论】:
以上是关于在 AsyncTask 或 Service 上下载文件?的主要内容,如果未能解决你的问题,请参考以下文章
Android:需要一个使用的想法:Service、Thread、AsyncTask 或其他东西