Dav*_*ebb 24
我的经验法则是,一个AsyncTask是当我想要做的事绑单Activity和Service是当我想要做一些开始它是在后台活动结束后,将进行.
因此,如果我想在Activity不占用UI 的情况下进行一小部分后台处理,我将使用AsyncTask.然后我会使用默认Handler从Activity传回的消息,以确保更新发生在主线程.在主线程上处理更新有两个好处:UI更新正确发生,您不必担心同步问题.
例如,如果我想下载可能需要一段时间,我会使用Service.因此,如果我Activity在我的应用程序或其他应用程序中完全转到另一个应用程序,我Service可以继续运行并继续下载文件,以便在我返回应用程序时准备就绪.在这种情况下,我可能会在下载完成后使用状态栏通知,因此用户可以选择在方便的时候返回我的应用程序.
如果你使用AsyncTask一个长期运行的过程,你会发现它可能会在你离开之后继续,Activity但是:
Activity处理完成后处于后台,则在尝试使用结果等更新UI时可能会出现问题.Activity当Android需要内存时,背景更容易被Android杀死Service.yan*_*nko 13
当你有一些必须在后台运行很长一段时间的东西时,请使用服务.它不受任何活动的约束.规范的例子是音乐播放器.当在当前活动中必须在后台完成某些操作时,
AsyncTask非常棒.例如下载,搜索文件内的文本等.
我个人仅使用处理程序将更改发布到UI线程.例如,您在后台线程中进行一些计算并通过处理程序发布结果.
底线:在大多数情况下,AsyncTask是您所需要的.
为了补充其他关于服务和AsyncTask之间区别的答案,值得注意的是[0]:
服务往往是描述应用程序重要部分的东西 - 而不是AsyncTask,它通常有助于活动和/或提高UI响应能力.除了提高代码清晰度之外,还可以与其他应用程序共享服务,从而在您的应用程序与外部世界之间提供清晰的界面.
而不是一本书我会说开发者指南有很多好的答案.
[0]来源:http://developer.android.com/reference/android/app/Service.html#WhatIsAService
| 归档时间: |
|
| 查看次数: |
17912 次 |
| 最近记录: |