2011-01-26 8 views
1

私は人の位置を追跡するための継続的なサービスを持っているアンドロイドアプリを持っています。私は、アクティビティ内からサービスを開始し、アクティビティ内からサービスを終了できるようにしたいと考えています。アクティビティが実行されているとき、私はサービスにバインドしてaidl経由で通信できる必要があります。しかし、活動が終了してもサービスを継続する必要があります。私は、サービスがアクティビティによって指示されたときに終了するだけです。アクティビティが終了した後に実行されるアンドロイドサービスを作成する方法

これまでのところ私は自分の活動とサービスを持っており、aidlファイルで通信することができます。しかし、現時点では、活動は活動が終わると終了します。

アクティビティが終了しても、それを継続して実行する方法と、アクティビティが再開されたときにどのように再バインドするのですか?

+0

続いstartServiceを呼びますか?私はサービスを開始するアクティビティを作成しましたが、アクティビティが完了すると、サービスは実行されたままです。 – exception01

+0

解決策を回答として投稿し、数日後(それが最小限であれば)答えとして選択してください。 –

+0

@Chris要請どおりに完了しました。 – CeejeeB

答えて

2

私はそれを理解しました。

サービスを作成してバインドする方法(bindService)を使用していましたが、サービスがbindServiceを呼び出して作成された場合、サービスはバインディングの期間だけ存続します私の活動が破壊されたときにやっていたunbindServiceを呼び出すと、サービス自体も破壊されました。

createServiceを呼び出してサービスを作成し、bindServiceを呼び出すと、既に実行中のサービスにバインドされます。あなたがそれからバインドを解除するようになると、それはもはやそれ自身を破壊しません。サービスはstopServiceに電話するまで続きます。あなたはときにだけ呼び出すされている場合

その後のサービスがすでに実行されているかどうかをチェックすることができ、あなたの活動を再入力し、bindService他の賢明なだけあなたには、いくつかのスニペットを表示することができますbindService

+1

非常に基本的なチュートリアルですが、教師はサービスを作成する方法を完全に説明しています。http://www.youtube.com/watch?v=yfWsp9IHX1Y – JPM

+0

美しい動画。私はただのサービスよりも多くのことを学びました。ありがとうございました – KickAss

関連する問題