1

ServiceにバインドするにはActivityが必要なアプリを開発しています。私は通常のbindServiceunbindServiceを使用しています。しかし、私は向きの変更を通じてバインディングを維持しようとしています。そのために、私はonRetainCustomNonConfigurationInstanceを無効にしています。しかし、私は問題に直面しています。 unbindに電話をかけるには、isFinishing()で終了し、正常に動作していますが、が漏洩していることを警告すると、Exceptionが送出されているかどうかを確認します。これがうまくいくかどうかはわかりません。オリエンテーションによるAndroid Mantainサービスの接続

私の主な問題は、回転後unbindへの呼び出しが行われた場合、私は維持し、アンバインド元ServiceConnectionをそれが動作していないよ

を登録していないメッセージサービスとIllegalArgumentExceptionを取得し、です。

Activityに添付されているFragmentServiceを使用しているため、結合が向きの変化によって維持されます。

これを修正するにはどうすればよいですか?またはFragmentServiceConnectionを作成する必要がありますか?あなたはserviceconnectionオブジェクトにサービスをバインドしようとしたとき、あなたはActivityコンテキストを使用しているので、あなたは例外ServiceConnectionがを漏洩してきた取得している

おかげ

答えて

2

です。このため、デバイスの向きが変わってServiceConnectionを保存するときにリークが発生します。

アプリケーション・コンテキスト(getApplicationContext())を使用し、とアンバインドどこでもあなたの活動にサービスを結合中に、漏れを避けるために、これはあなたの問題を解決し、あなたは

が結合ServiceConnectionをリークされることはありません:

getApplicationContext().bindService(new Intent(this, TestService.class), serviceConnection, BIND_AUTO_CREATE); 

アンバインド:

getApplicationContext().unbindService(serviceConnection) 
関連する問題