我正在處理一個應該處理用戶的Android聯繫人並與SQL數據庫進行交互的類,您可以將手機的聯繫人移動到(數據庫中的信息將顯示爲ListView)。我做了一個應該按名稱檢索Android聯繫人的函數,並返回該聯繫人的所有信息。我的功能如下:我應該通過名稱獲取Android聯繫人的函數是否返回一個Cursor或其他東西?
public Cursor getContactByName(String name)
{
Uri uri = ContactsContract.Data.CONTENT_URI;
String[] projection = null;
String selection = Data.DISPLAY_NAME + "=?";
String[] selectionArgs = new String[]{name};
String sortOrder = null;
return managedQuery(uri, projection, selection, selectionArgs, sortOrder);
}
所以這個想法是,這將被另一個函數調用,它會首先檢查聯繫人是否存在。該函數將返回一個只包含該聯繫人信息的遊標。首先,我想知道如果我正確地返回包含聯繫人信息的Cursor,還是應該創建一個存儲此信息並返回該類的對象的類?或者,也許我應該返回一個字符串?請記住,我要返回的是我打算移動到數據庫的聯繫人,我覺得返回一個光標不是我應該瞄準的目標。而作爲一個側面問題,是否有任何理由使用ContentResolver.query代替managedQuery來達到我的目的?
好的,這回答我的問題。謝謝!雖然這樣保存遊標沒有問題,對吧?我可以從數據庫中獲取光標並從中獲取信息,就像我在創建後仍然處理它一樣?我對Android開發非常陌生,所以遊標仍然有點混亂。 – Cheddar
@Cheddar你以前不得不擔心關閉遊標,但是我認爲遊標自己管理自己並不是一個問題。只要你確定關閉數據庫連接,你應該沒問題。 – dcow