EventBus
最近EventBusをつかってるけど、かなりいい。 これのおかげでAsyncTaskLoader使わなくてよかったり、Fragment間の通信に関してActivityにinterface実装して~とかしないでいいので挙動がわかりやすい。
自分で定義したEventクラスを好きな箇所で投げて、FragmentやActivityのスレッド(UIスレッド含む)で捕まえて処理する。 頻繁に使うのがデータをネットワークから取ってきて表示するようなところ。
new Thread(new Runnable(){ @Override public void run(){ #通信してデータを取得 Data d = loadData(); EventBus.getDefault().post(new DataLoadedEvent(d)); } }).start();
別スレッドで通信し、結果をEventとして投げる。でそのFragment(Activity)でEventを処理。
複数のFragmentでキャッチしちゃうときがあるので、その時はEventにIDを振っておいてそれで判断するのが良いかも。