いつぞやの勉強結果で【Androidアプリ開発勉強】Observerパターンで非同期処理はAsyncTaskLoaderがメジャーらしいと書きました。
あれから画面とDB周りの目処が付いたので、
いよいよローダーを組み込もうと思ったらハマりました。
【問題】ひとつのActivityで複数のローダーはどう呼べば良い?
コールバックを複数書けるわけもなく、
ひとつのActivityで複数のローダーはどう呼べばよいのだろうか?という所で詰まりました。
また、↑で書いた記事ではActivityでいきなり以下を書けとなっています。
getSupportLoaderManager().initLoader(LOADER_ID, args, mCallback);
が、当然getSupportLoaderManagerはActivityには無いメソッドなので、
継承するなりinterfaceなりが必要です。
で、結果的にinterfaceにLoaderManager?を指定すれば良さそうですが、
画面の表示に必要とはいえ、
ActivityのinterfaceにLoaderManagerを指定するのがなんとなく気持ち悪い。
(確かに使うけど画面のinterfaceじゃなくて良くない?みたいな)
対策
以下のサイトに書いてありました。多謝。
ただ、深夜にようやく見つけたのでまったく内容は理解出来ず…。
明日試してみて結果を書けたらいいなーという感じ。
見た感じまったく頭に入らない。
結論
1画面で1個だけローダーを投げるのであれば既出の内容でLoaderManagerをinterfaceに指定すれば良さそう。
1画面で複数のローダーを投げたい+作りが気持ち悪い場合は対策欄のサイトみて頑張る。