1

在我的应用程序中,我使用 SAX Parser 解析 XML 数据。但是,我想把整个解析操作放在后台,即,我想使用工作线程来做这件事。这将是最好的解决方案,使用处理程序、AsyncTask 或服务,因为我在这三者之间有很多混淆。

4

3 回答 3

2

AHandler不做任何工作;它是一种在后台线程和 UI 线程之间传递处理的方法。AnAsyncTask是这里的方法:它有一个内置的,Handler所以当你完成后你可以在 UI 线程上做一些事情,甚至随着工作的进行发布更新。这就像使用普通的 worker 一样Thread,但具有Handler内置的便利性。当然,如果 a 的工作方式不能很好地满足您的需求,您可以使用 workerThread和您自己。HandlerHandler

Service听起来有点矫枉过正;这是一种使处理可用于其他活动的方法。它也没有解决这个问题:在ServiceUI 线程上调用它需要启动一个单独的线程以避免阻塞 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 回答