LoginSignup
0
0

More than 5 years have passed since last update.

【Androidアプリ開発勉強】1画面でAsyncTaskLoaderを複数呼びたい時。

Posted at

いつぞやの勉強結果で【Androidアプリ開発勉強】Observerパターンで非同期処理はAsyncTaskLoaderがメジャーらしいと書きました。
あれから画面とDB周りの目処が付いたので、
いよいよローダーを組み込もうと思ったらハマりました。

【問題】ひとつのActivityで複数のローダーはどう呼べば良い?

コールバックを複数書けるわけもなく、
ひとつのActivityで複数のローダーはどう呼べばよいのだろうか?という所で詰まりました。

また、↑で書いた記事ではActivityでいきなり以下を書けとなっています。
getSupportLoaderManager().initLoader(LOADER_ID, args, mCallback);

が、当然getSupportLoaderManagerはActivityには無いメソッドなので、
継承するなりinterfaceなりが必要です。

で、結果的にinterfaceにLoaderManager?を指定すれば良さそうですが、
画面の表示に必要とはいえ、
ActivityのinterfaceにLoaderManagerを指定するのがなんとなく気持ち悪い。
(確かに使うけど画面のinterfaceじゃなくて良くない?みたいな)

対策

以下のサイトに書いてありました。多謝。

今更ながら入門する AsyncTaskLoader

ただ、深夜にようやく見つけたのでまったく内容は理解出来ず…。
明日試してみて結果を書けたらいいなーという感じ。

見た感じまったく頭に入らない。

結論

1画面で1個だけローダーを投げるのであれば既出の内容でLoaderManagerをinterfaceに指定すれば良さそう。
1画面で複数のローダーを投げたい+作りが気持ち悪い場合は対策欄のサイトみて頑張る。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0