2012-02-25 9 views
2

バックグラウンドサービスタスクを実装する方法を決定するのはちょっと混乱します。私のサービスは次のようになります。アンドロイドサービスの別のスレッドで位置更新を実行する

Androidのサービス(バックグラウンドで行うための2つのタスクを持っている)

  1. locationListenerのための登録と新しい場所が受信、最高の場所かどうかを決定するためのプロセスを。

  2. 10分ごとにサーバーにポーリングし、サーバー側がリモートデータベースに変更されていないかどうかを確認します。

ここでは、これらの2つのタスクがタイミングとリソースのために戦わないようにします。だから私はこれら2つを同時に動かすつもりです。サーバーへのポーリングでは、繰り返しtimerTaskを使用していますが、LocationListenerに対しては何を使用する必要がありますか?

ロジックを使用して新しい場所を処理し、場所をサーバーに更新するにはJava実行可能ファイルを使用してもよろしいですか?私の考えが良ければ、新しいスレッドでどのように位置更新を実行できるかを示すサンプルコードを提供してください。

現在のアイデアに問題があると思われる場合は、新しい要件をご提案ください。私はあなたがマニュアルに、あなたのサービスで実行LocationListenerを登録することはできません示唆何も、見ない

答えて

1

http://developer.android.com/reference/android/location/LocationListener.html http://developer.android.com/guide/topics/location/obtaining-user-location.html

これが答えで同様の質問ですが、あなたはそれを読んでください。 Android service with locationListener callbacks

"私は、これらの2つのタスクがタイミングとリソースを求めて戦わないようにするため、これら2つを同時に実行する予定です。" ^あいまいな声明の後に、一見反抗的な直観的な計画が続きます。あなたが "タイミング"と "リソース"を意味するものについて具体的にできるなら、あなたはそれに関する有用なフィードバックを得るかもしれません。

短い回答: はい。 LocationListenerを登録すると、Location更新が利用可能になったときに呼び出されます。それはあなたがそれを登録したものによって必要になったときに呼び出されるという点で、あなた自身を呼び出す必要はありません。ベストプラクティスは、TimerTaskでリピートするのではなく、毎回呼び出されるコードによってリセットされるワンショットを使用することです。

無料コードに関しては、おそらく、あなたのために努力する人を雇うべきでしょうか?それはAndroidコミュニティで別の仕事を創造し、あなたが熟知していないことを試みる際のリスクを緩和します。そうでなければ、手を汚くして、それがうまくいくと思うように実装してみてください。特定の問題が発生したときにスタックオーバーフローが発生する。

+0

straya:返信いただきありがとうございます。しかし、あなたからは、タスクと場所の更新タスクが同じであると考えているようです。現在私は場所のTimerTaskを使用していません。しかし、タイマータスクは、リモートWebサーバーからいくつかのデータベース更新を取得するために使用されます。私のロケーションリスナーが呼び出されたtimerTaskを実行している間もあります。だから私はスレッドを実装しようとしていたのです。あなたが私の新しい浄化についてコメントすることができれば、それは私のために役立つでしょう... –

+0

いいえ、私は彼らが同じではないと思います。私が書いたことに基づいて、それが私が思うものだと思うなら、何かがあなたのために間違っています。私が非常に慎重に言ったことを再読んでください。リスナーを登録して、そのことをさせてください。 TimerTaskをセットアップして、そのことをさせてください。彼らが「同じ時間に」走っているとあなたは何を気にしますか(私はあなたが重要な情報を保持していると思うようになります...) – straya

関連する問題