開始と終了の2つのボタンがあるプログラムを開発しています。[開始]をクリックすると、30秒ごとに場所の取得が開始されます。ソケット接続を使用してサーバーに送信します。[終了]ボタンをクリックすると、すべての作業が停止します。スレッドを使用せずにこれを行うことはできますか?スレッドを使用する必要がある場合、それを実装するための最良の方法は何ですか。LocationListenerでLocationProviderをリッスンして、30秒ごとに場所を取得し、スレッドで送信する必要があります。または、接続スレッドを作成し、すべてで場所を取得して送信する必要があります。
3 に答える
2
残念ながら、これは部分的な答えです(残りの質問を理解するのは難しいです):
スレッドを使用せずにこれを行うことはできますか?
不可能だよ。メインUIスレッドでこれを開始すると、アプリUIはすべてが完了するまで待機する必要があります(ネットワーキングは時間のかかる作業です)。したがって、唯一の方法は、バックグラウンドスレッドでこれを行うことです。
于 2011-10-04T11:31:46.313 に答える
1
UI メイン スレッドで接続を確立すると、接続が終了するまでアプリケーションが応答しなくなりますが、これは誤りです!!! 確立する接続ごとにスレッドを作成する必要があります。これを強くお勧めします。
毎回 30 秒間スリープするスレッドを作成してから、指定した作業を実行する必要があります。
作業はスレッドで行う必要があります。これらの作業にはメイン スレッドを使用しないでください。
于 2011-10-04T11:45:24.280 に答える