要下载大文件,这是使用AsyncTask还是Thread的更好方法?

Yoo*_*suo 7 android

我在以下链接中找到了下载大型数据文件的示例, http://code.google.com/p/apps-for-android/source/browse/#svn/trunk/Samples/Downloader

它似乎很不错(我还没有测试过).但是我也在stackoverflow上阅读了一些帖子,通过使用AsyncTask类来做同样的事情,而不是使用Thread类作为上面的示例.

我想知道的是,我应该使用哪个来实现下载文件?如果AsyncTask更好,你能指点我一个示例代码吗?

And*_*rey 7

免责声明:我不是Android开发人员,答案来自一般经验.

Thread类最适合长时间运行的活动,而不适用于异步任务.除非您管理工作池,但线程的生命周期与应用程序相同或几乎相同.考虑创建线程是昂贵的操作.

AsyncTasks和其他帮助程序通常用于您希望在后台执行的某些单个活动,因此不会阻止该应用程序.它们通常由平台很好地管理并且便宜.

我的观点:如果你想偶尔加载页面,请使用AsyncTask.如果您的应用程序将在后台一直加载页面,请考虑线程.

  • 作为一名真正的 Android 开发者,我只能说完全正确。如果您只下载一个文件,请使用异步任务;如果您不断下载和上传,则使用线程或服务......很好的答案安德烈 (2认同)
  • 任务完成后,AsyncTask对于更新UI非常有用.它不会阻止您的UI(活动).如果计划在长时间运行的情况下使用Thread,那么创建一个服务来保存线程会更好. (2认同)