2013-10-29 30 views
4

任何人都可以告訴我區別AsyncTaskLoader和AsyncQueryHandler嗎?AsyncTaskLoader vs AsyncQueryHandler

我想在我的應用程序使用AsynTaskLoader ..現有一個在我的應用程序是AsyncQueryHandler ..

我說得對有關AsyncTaskLoader是更換AsyncQueryHandler的?

正確我如果我錯了..我是非常新的android。

回答

6

如果你閱讀文檔:

AsyncQueryHandler

一個輔助類來幫助處理異步ContentResolver的查詢更加容易。

AsyncTaskLoader

摘要裝載機,提供了一個的AsyncTask做的工作。有關更多詳細信息,請參閱Loader和LoaderManager。

所以他們是非常不同的。 AsyncQueryHandler用於異步查詢/插入到ContentResolver中,AsyncTaskLoader是對任何種類的後臺處理(HTTP,SQL等)使用AsyncTask做的新的Loader機制(在API級別11中引入)的實現。

你也應該看看CursorLoader,也許這是你所需要的。

我要說的是,如果你只是想從ContentResolver讀你應該使用CursorLoader,但如果你想插入,刪除等成ContentResolver,也許最好是使用AsyncQueryHandler

+0

真的非常感謝您的回覆......所以,您的意思是說,在我使用AsyncTaskLoader的情況下,不需要使用CursorLoader。是不是? –

+0

是的。只使用其中的一種,這最適合你。所以我們+1如果有用的答案,可以跳過'謝謝'部分:) –

+0

@OvidiuLatcu如果啓動它們的活動被殺死或暫停,A​​syncQueryHandler操作(CRUD)會發生什麼?這些行動是繼續做他們的工作還是他們的死亡/取消?謝謝 – Axel

1

CursorLoaderAsyncTaskLoader的子類。和LoaderManager只能提供一種方法來訪問ContentResolvers上異步調用的query()操作的結果。其他ContentResolver操作仍然是同步的。

但是,AsyncQueryHandler異步調用所有ContentResolver調用。不只是查詢,還包括插入,刪除,更新。