2011-07-28 61 views
0

我正在嘗試使用android中的managedquery()獲取與內容提供者一起使用時的遊標。我之所以這樣做,是因爲它提到了這將在活動暫停或恢復時自行處理光標的關閉。如何在Android中高效地使用託管查詢?

但是,這隻適用於Activity類。但我有不止一個使用android中的asynctask的後臺線程。我在多個線程中執行相同的列表獲取。所以它的重複代碼。這是因爲我無法從其他線程dobackground()調用一個線程類的函數。有沒有一種簡單而安全的方法來避免這種重複的代碼。友善的建議。感謝您的幫助和時間。

回答

0

你不能有一個抽象的asynctask類實現這個數據庫查詢代碼(如果這是你在後臺線程中做的所有事情,然後把它放在doInBackground(),否則把它放在一個私人的方法),和然後讓你的具體的子類擴展這個抽象類調用super.doInBackground或調用該私有方法?

E.G.

private abstract AbstractQueryTask extends AsyncTask<Long, Void, Long> { 

protected Cursor querycode{ 
//put your query code here 
} 

} 

public ConcreteQueryTask extends AbstractQueryTask { 

//put the doInBackground and onPostExecute implementations here 

}