AsyncTaskを使うのでトリガーとなるrecyclerView周りを調べる。
デベロッパーでも一般サイトでもRecyclerView.setAdapter( adapter )での説明に移っている。
以前は見なかったので追加された?
デベロッパーの説明では、プールにadapterが無ければ旧adapterを廃棄して新adapterをセットする。
これは楽だ。
データの総入れ替えはレイアウトマネージャーとアダプターをクリアして、新しいデータをアダプターに設定していた。
初回設定の仕方はどこにもサイトも説明しているが、サイズの違うデータの総入れ替えの説明は見つからなかった。さらにシステムの内部動作が分からないから念のためクリアを組み込んだ。
デベロッパーで見つけたsetAdapter()が旧adapterを廃棄する。と明記しているので、関係レイアウトマネージャーも上手いことやってくれると推測した。
じゃぁ。という事で自前クリアを注釈変更して、setAdapter()を組み込む。
あれ?recyclerViewの画像表示がされない…。スクロールするとサムネイル画像が出てくる^^;
notifyDataSetChanged()、setNotifyItemChanged()、の使いどころだろうか。
AsyncTaskと一緒にRecyclerViewを作り変える。
今回のテストでビルドエラーは出ない。
エミュレーターはAPI17で動作テスト。
recyclerviewの初期表示のみ不具合だった。
<追記>
recyclerViewの初期表示に不具合が発生したのは、テスト用のキャッシュファイルの作成タイミングと場所に原因があった。本番用と違っている内容だった。
今後は内部データディレクトリと外付けストレージのキャッシュファイルを分けて管理するので、テスト用と本番用は同じもので組む。
また、機能、構造をシンプルにする。
RecyclerView.setAdapter( adapter )は、始めた当初から使っていた(笑)mainActivityのみで。
adapter.addAll()でデータ更新していたからsetAdapter()を忘れていた^^;。