2011-05-24 33 views
1

中編寫異步內容提供程序我正在編寫一個爲其他應用程序提供搜索結果的內容提供程序。內容提供程序向服務器發送請求並解析response.now它可以在沒有異步調用的情況下成功運行。但如果我想要一個異步內容提供者,即在query()函數中創建一個線程。然後出現這個問題,我怎麼能知道線程什麼時候完成並得到了結果。因爲現在我只是新建一個線程,並開始但是,光標無法得到結果。任何人都可以幫助我?謝謝!如何在android

+0

您可以使用CursorLoader來實現這一點。你可以在這裏找到這個概念:http://mobile.tutsplus.com/tutorials/android/android-sdk_loading-data_cursorloader/ – Crisu83 2012-10-12 06:06:53

回答

1

我的應用程序有這個問題。根據您的情況,您可能能夠從查詢調用中返回空遊標,然後在遊標數據更新時更新視圖。如果您的數據源有意義,您可以繼承MatrixCursor(或其他遊標)的子類,並確保在異步請求完成後更新遊標數據時調用onChange - 這應該通知遊標的觀察者新數據,然後它們可以顯示它。

+0

另外一個選項在這裏列出:http://groups.google.com/group/android-developers/browse_thread/thread/72c7f0b51325a209/7300393d9a1c467a - 這個想法僅僅是告訴消費者這個內容提供者的調用需要異步發生,這使得異步需求成爲應用程序關心的問題,而不是內容提供者關心的問題。 – deepwinter 2012-03-06 07:00:16

+0

'onChange'在哪裏? – Caipivara 2016-09-16 17:16:58