2011-01-21 11 views
0

私はアンドロイドマニフェストからバックグラウンドサービスを宣言しました。このサービスは、アプリケーションのメインアクティビティから開始し、無限ループで実行され、外部サーバーへのロケーション更新を実行します。Androidバックグラウンドサービスの問題

このバックグラウンドサービスは、(サービスのマニフェスト宣言でandroid:processタグを使用して)アプリケーションの主なアクティビティのプロセスとは別のプロセスで実行されます。私が抱えている問題は、DDMS/geoコマンドを使って模擬位置を送信しても、サービス内からGPS位置情報の更新を要求するとLocationListenerのonLocationChanged()メソッドが呼び出されないということです。しかし一方で、アプリケーションの主なアクティビティからGPSロケーション更新を要求すると、修正が受信されたときにonLocationChanged()メソッドが適切に呼び出されているので、修正する必要があるのは不思議ですアクティビティーではなくサービス内からの同じ動作。

ご協力いただきありがとうございます。 ハス。

+0

更新のリクエスト方法を教えてください。 –

答えて

3

このサービスは、アプリケーションのメインアクティビティ内から開始され、無限ループで実行され、外部サーバーへのロケーション更新を実行します。

メモリを浪費しないようにしないでください。 AlarmManagerを使用して、ServiceIntentServiceなど)の自己停止を定期的に開始してください。また、場所を取得しているようだから、LocationPollerサービスの利用を検討してください。

このバックグラウンドサービスは、(サービスのマニフェスト宣言でandroid:processタグを使用して)アプリケーションの主なアクティビティのプロセスとは別のプロセスで実行されます。

しないでください。あなたは記憶を浪費し、価値を付加しません。また、あなたの問題に貢献しているかもしれません。

私は、アクティビティではなくサービス内から同じ動作を得るために何が変更される必要があるのだろうかと思います。

サービス内の場所の取得はうまくいきます。この使用例については、LocationPollerを参照してください。

+0

LocationPollerソリューションをありがとう。 –

関連する問題