セットアップ: にデータをフィードするカスタム アダプターListView
。データは、外部サービスによって計算されたいくつかの数値に基づいています。AIDL を使用してサービスをバインドし、必要なデータを取得しています。
問題: サービスのバインドを解除するタイミングを知るにはどうすればよいですか? 接続はアダプタ自体に対してプライベートであり、アプリケーション全体がシャットダウンしていることを検出する唯一の方法はオーバーライドunregisterDataSetObserver
です。または、少なくとも別の方法が見つかりませんでした。これは、コンテンツプロバイダーとコンテンツオブザーバーを使用して同じアダプターでうまく機能しました。ただし、AIDL では機能しませんServiceConnectionLeaked
。エラーが発生します。
「unbindFromService」メソッドをアダプターに追加して、アクティビティの onDestroy() から呼び出すことができることはわかっていますが、それは私にとって十分にエレガントではありません。可能であれば、「正直な」トリガーを希望します。