2012-06-28 24 views
1

在我的應用程序中,我使用SAX解析器解析XML數據。但是,我想將整個解析操作置於後臺,即我想使用工作線程來完成此操作。這將是最好的解決方案,使用處理程序,AsyncTask或服務,因爲我在這三者之間有很多混淆。Android:執行後臺操作的設計考慮

回答

2

A Handler不做任何工作;這是一種在後臺線程和UI線程之間傳遞處理的手段。 AsyncTask是這裏的一種方式:它有一個內置的Handler,所以當你完成後你可以在UI線程上做一些事情,甚至隨着工作進展發佈更新。這就像使用普通工人Thread,但內置Handler的便利。當然,如果您的工作方式不符合您的需求,您可以自己使用工人ThreadHandler

A Service聽起來像這樣的矯枉過正;這是一種使處理可用於其他活動的方式。它也沒有解決問題:在UI線程上調用Service,它需要啓動一個單獨的線程以避免阻塞UI。

0

你可能只是產生一個普通的java線程,並在那裏工作。

0

都有着各自的優勢。所以回答任何一個出所有的,是取決於你的需要..

,如果你想輕鬆實現可以使用AsyncTask with predefined structure and callbacks等等之類的服務可能有它在某些情況下,自己的優勢等。

處理程序提供更多的靈活性,然後AsyncTask作爲AsyncTask具有預定義的結構和不同的工作回調。所以你可以handler with any thread with沒有預先定義的結構和回調限制。