有山@大阪です。
僕の場合はActivity毎にonResumeでバインド、onPauseでunbindしていますね。
根拠というのは「これ」と言うものがないのですが、スタブを各アクティビ
ティで共有する形では、サービス側からのコールバックをうまく処理できない可
能性があるんじゃないかと考えて、いつの間にかそうするようになりました。
複数のアクティビティが一つのサービスにバインドする場合は、それらのアク
ティビティの共通クラスとして、abstractのクラスを一つ用意しています。
該クラスには、onResumeでサービスへ接続、onPauseでunbindする処理を書い
ているので、サブクラスで同じ処理を書く必要がないので便利です。
ちなみに、サービス接続後の処理が出来ない件ですが、共通クラスに
abstract Runnable getServiceConnectedEvent();
を定義しています。これをonConnectedの中で必ず呼び、その結果がnullでな
ければrunするようにします。
サービス接続後の処理が必要な場合、これをサブクラスで実装する事で、サー
ビス接続後の処理を各クラス側で行えるようにしています。
サービスに登録するコールバックについても同じようにしています。
何かの参考になれば幸いです。
/*********************************************
有限会社シーリス
代表 有山 圭二
@Address
〒530-0044
大阪市北区東天満二丁目2番5号
第2新興ビル 601
@Web
http://www.c-lis.co.jp
*********************************************/