安卓 :如何在带活套的后台线程和服务之间进行选择



根据我对 looper 的理解,它可以成为通过任何请求传递的中心消息和服务中的处理程序也可以做到这一点。那么每个(线程优先级,可靠,资源,...)的出现是什么决定使用。有什么建议吗?

使用Handler我会说是基本方法,创建Thread并实现Handler但是如果您处理更复杂的应用程序,您应该决定AsyncTask,这更复杂,类型更安全,更快,提供更多选项。您可以像内部类或分离类一样声明它。

Services更复杂,您应该知道当时内存中只能有一个Service,只有一个实例,一个服务副本,以及当更多Activities尝试连接到Service时。当您的Tasks很长并且您希望它们在没有与任何Activity(例如音乐播放器,RSS,保持聊天状态等)时,通常使用服务。但这一切都不是免费的,所以你必须关心CPU,以防止电池过早耗尽。

如果我向您推荐,请先尝试使用AsyncTask,当某些东西不适合您或您需要我上面写的东西时,请Service获取。

有关AsyncTask的更多信息,请查看本教程

最新更新