0

データベースなしでコンテンツ プロバイダーを使用することについて質問があります。

これには、マトリックスカーソルを備えたリスト/ハッシュマップがあります。コンテンツ プロバイダーでクエリが実行されている場合、要求されたデータは次のように返されます (これは疑似コードです)。

MatrixCursor mc = someMap[2];
return mc;

クエリを実行しているクライアントがカーソルを閉じるとどうなりますか? 返されたカーソルはそのオブジェクトへの参照であるため、 someMap のカーソルも閉じられると思います。私はここで正しいですか?

編集:

query() は直接メソッド呼び出しではないため、 getContentResolver() メカニズムが常にカーソルのコピーを処理するかどうか疑問に思っています

4

1 に答える 1

1

ハッシュマップとその記入方法を示していないため、質問に答えるのに十分な要素がありません。

しかし、Java では、次のようにします。

Cursor cursorA =  new ....
Cursor cursorB = cursorA;
Cursor cursorC = getCursorAViaAMethod();

cursorC、cursorB、cursorA は、同じ Java オブジェクトの参照 (コード内の名前) です。したがって、1 つを閉じると、すべてが閉じます。

于 2012-05-03T14:37:24.703 に答える