私はバインドされたサービスを持っています。アクティビティがそれをバインドしています。それはアクティビティのサービスonStop()
メソッドのバインドを解除します。アクティビティのランタイムが変更されている間にバインドされたサービスが破棄されないようにする方法(例:orientation)
ランタイムの変更(たとえば、方向の変更)がアクティビティに発生すると、アクティビティが再作成されるという問題があります。したがって、onStop()
メソッドがアクティビティから呼び出され、そのアクティビティがそのメソッド内のサービスをバインド解除します。その結果、サービスが破棄され、再開されます。
アクティビティが見えなくなったときにサービスを停止したまま、ランタイムの変更でサービスが破棄されないようにしたい。試してみると、startService()
が表示されますが、アクティビティが見えなくなってもサービスは停止しません。 stopServiceアクティビティのonStop()
を追加すると、結果はbindService()
とunbindService()
と同じになります。
PostDelaying in AcitivityのonStop()
では、この問題の一部を解決できますが、遅延時間は任意で、これにより、アクティビティがしばらくの間GCを取得できなくなります。私はより明確な解決策が必要です。
android:configChanges="orientation"
のような解決方法は他にもあるので、私はランタイムの変更を処理することをお勧めしません。
つまり、私はサービスがsetRetainInstance(true)
と呼ばれる断片のように動作するようにしたいと思います。しかし、フラグメントにはbindService()
のようなものはありません。私は何をすべきか?
私はアプリケーションコンテキストを考え出しませんでした。答えてくれてありがとう。 – Naetmul