在我的应用程序中,我使用SAX Parser解析XML数据。但是,我想把整个解析操作放在后台,即我想用工作线程来做这件事。这将是最好的解决方案,使用处理程序,AsyncTask或服务,因为我在三者之间有很多混淆。
答案 0 :(得分:2)
Handler
没有做任何工作;它是在后台线程和UI线程之间传递处理的一种方法。 AsyncTask
是这里的一种方式:它有一个内置的Handler
,因此您可以在完成后在UI线程上做一些事情,或者甚至在工作进展时发布更新。这就像使用普通工作人员Thread
一样,但内置了Handler
的便利性。当然,如果顺便的话,你可以自己使用工人Thread
和Handler
Handler
作品不能很好地满足您的需求。
Service
听起来有点矫枉过正;这是一种使处理可用于其他活动的方法。它也没有解决问题:在UI线程上调用Service
,它需要启动一个单独的线程以避免阻止UI。
答案 1 :(得分:0)
你可能只是生成一个普通的java线程并在那里完成工作。
答案 2 :(得分:0)
所有人都有自己的优势。所有人都应该回答,这取决于你的需要..
就像你想要轻松实现一样可以使用AsyncTask with predefined structure and callbacks
,所以在某些情况下服务可能会有自己的优势..
Handler提供了比AsyncTask更多的灵活性,因为AsyncTask具有针对不同工作的预定义结构和回调。所以你可以handler with any thread with
没有预定义的结构和回调限制。