2011-07-26 5 views
3

私は、サービスをバインドしてサービスメソッドを呼び出すことができる主な活動をしています。Androidバインドサービス、アクティビティがバインド解除するとどうなりますか?

サービスメソッドは、データをダウンロードしてdbに格納するスレッド(サービス中)を開始します。ダウンロードの最後に、スレッドを再開することができます。活動は(つまりonPauseで)unbindService呼び出す場合

何が起こりますか?すべてのタスクが終了すると、サービスが破棄され、スレッドが停止するか、サービスが破棄されますか?

答えて

8

サービスが以前にstartService()メソッドを使用して起動され、バインドされていた場合、バインド解除後もサービスは継続して実行されます。

bindService()を使用してサービスを開始したばかりの場合、サービスにバインドされていない他のサービスがバインドされていないとサービスを実行していない場合、そのサービスは停止します。

+0

サービスはbindService()を使用して開始されますが、アクティビティがサービスの同じスレッドを実行してもバインドを解除できない場合は、これらのタスクはどうなりますか?彼らは終わったのか、それとも殺されたのですか? – kristby

+0

スレッドは引き続き実行されます。あなたはそれらを止める必要があります。 Services onStop()メソッドをオーバーライドする必要があります。そこでは、現在実行中のスレッドを停止する必要があります。 –

関連する問題