何时使用服务或异步任务或处理程序?
2022-09-01 07:42:18
有人能告诉我真正的区别吗?
我的经验法则是,当我想做一些与单身有关的事情时,a是当我想做一些事情时,在开始的活动后继续进行,它是在后台进行的。AsyncTask
Activity
Service
因此,如果我想在不占用UI的情况下进行一些后台处理,我将使用.然后,我将使用默认值将消息传回,以确保在主线程上进行更新。在主线程上处理更新有两个好处:UI更新正确发生,您不必担心同步问题。Activity
AsyncTask
Handler
Activity
例如,如果我想进行下载,这可能需要一段时间,我会使用.因此,如果我在我的应用程序中转到另一个应用程序或完全另一个应用程序,我可以继续运行并继续下载该文件,以便在我返回应用程序时它已准备就绪。在这种情况下,我可能会在下载完成后使用状态栏通知,以便用户可以选择在方便的时候返回到我的应用程序。Service
Activity
Service
如果您将 a 用于长时间运行的进程,您会发现,在您离开但是:AsyncTask
Activity
Activity
Activity
Service
当您有东西必须在后台长时间运行时,请使用服务。它不受任何活动的束缚。规范示例是音乐播放器。
当某些事情必须在当前活动中在后台完成时,AsyncTask非常有用。例如,下载,搜索文件中的文本等,
我个人只使用Handlers将更改发布到UI线程。例如,您在后台线程中执行一些计算,并通过处理程序发布结果。
底线:在大多数情况下,AsyncTask是你需要的。