7

元のバインド/バインド解除サービスは、bindService()/を使用してクライアントから呼び出すことができますunbindService()

unbindService()私の質問は、クライアントから呼び出されるのではなく、サービス側でサービスのバインドを解除する方法です。おそらくそれを呼び出す必要がありunbindClientます。

サービスは、どのクライアントがバインドされているかを認識している必要があると思いますが、サービスに特定のクライアントのバインドを解除するように指示する方法はありますか?

私はサービスを書いているだけで、クライアントがunbindService()正しく呼び出したかどうかわからないので、この質問があります..

4

3 に答える 3

0

サービスが開始されて bindService() が呼び出されたときにサービスが返す機能を単に制限したい場合は、クライアントを登録し、サービスの使用が完了したら登録を解除できます。この方法では、サービスをバインドしても影響はありません。Android ウェブサイトのRemote Messenger Serviceの例から選びました

于 2014-08-07T04:53:42.370 に答える
0

サービスはそれ自体をバインド解除できません。ただし、開始したサービスを停止させることができますstopSelf()

OS は、舞台裏ですべてのバインドとバインド解除を追跡します。オブジェクトのリサイクルについて心配する必要はありません。Android が自動的に処理します。

于 2013-03-21T07:29:46.780 に答える
0

クライアントコードにアクセスできる場合 -

クライアントから呼び出すことができstartService()ます-サービスを開始します(終了するだけなので、サービスを終了しServiceても終了しません)。ActivitystopService()

また、クライアントは、bindService()実行したい場合は対話をActivity呼び出すことができます。Service

クライアントを終了/バインド解除すると、サービスstartService()は呼び出されてから実行されます-Service他の操作を実行してから呼び出すと、stopService()それ自体が破壊されます。

于 2013-03-19T23:04:56.033 に答える