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