CursorAdapter.swapCursor

swapCursorは、新しいCursorに交換するのだが、changeCursorと違って、古いCursorを閉じない。

CursorAdapter  |  Android Developers
Yukiの枝折: LoaderManager.LoaderCallbacksインタフェースのAPIまとめ
https://www.blogc.at/2014/03/03/swapcursor-vs-changecursor-whats-the-difference/

CursorLoaderの項の、CustomCursorAdapter.javaで、

changeCursorとswapCursorをオーバーライドして、ログを出して見てみる。

3つ
3つ

3つ。

挿入
挿入

挿入。

4つ
4つ

4つ。

スワップされてる
スワップされてる

真ん中辺で、s2(newCursor)が412c3cb0でoldCursorがnullだったが、そのあとでs2が412d7438になってs3(oldCursor)が412c3cb0でnewCursorがnullになってる。スワップされてる。

412dc738
412dc738

その後に、412dc738というのがある。これもいまスワップさせられたoldCursor状態。

ここまで来ている状態
ここまで来ている状態

ここまで来ている状態で、中身を見ると、

まだ閉じられてなさそう
まだ閉じられてなさそう

まだ閉じられてなさそう。
(スクショが正確じゃないので確証が持てない。)

Sample/android/CursorAdapter/swapCursor/src/CursorAdapter at master · bg1bgst333/Sample · GitHub