2017-03-09 7 views
1

私はマップを表示する必要がある(私はOsmdroidを使用しています)、地理座標のリストを持つテキストファイルを読む必要があります。私は緯度と経度のペアを読んでマップ上に表示し、1秒後に次のペアを読んでマップ上に表示しなければなりません。Androidで長いテキストファイルを読み込むにはどのようなスレッド方法を使用できますか?

私はThreadのファイルを読むことを考えていましたが、Threadのユーザーインターフェイスで何もできないことがわかったので、地図上にその場所を表示することはできません。

次に、私はAsyncTaskでユーザーインターフェイスを変更することができましたが、ドキュメンテーションに短いタスク用であると表示され、何をしたいのかは数分かかる場合があります。 AsyncTaskドキュメントで

あなたが長時間実行中のスレッドを維持する必要がある場合、それは非常にあなたがそのようなエグゼキュータ、ThreadPoolExecutorとFutureTaskなどjava.util.concurrentパッケージによって提供される様々なAPIを使用することをお勧めします、と言います私はこれらのクラスをいつ使用するのか、それらのうちの1人(または他の人)が私が望むことをするのに役立つかどうかわからない:テキストファイルの行を読んで、地図上の場所を示す。

+0

RxJavaを使用することをお勧めします。わずか数行のコードで問題を解決できます。また、スレッディングと遅延間隔の計算についても心配する必要はありません。ここでそれについての例の質問です。私はそれが同じ状況ではないが、多分それはあなたにアイデアを与えることができます知っている.http://stackoverflow.com/questions/33291245/rxjava-delay-for-each-item-of-list-emitted – mertsimsek

答えて

0

あなたはそれがこれを参照してください

このリンクを読んで、AsyncTaskまたはローダーのためにユーチューブを検索するだけでなく

AsyncTask より効率的で、バックグラウンドでデータをロードするためにAsyncTaskクラスを使用してUIイースリー を更新したり、同様Loadersを使用してみてくださいすることができます

StackOverFlow

とATの例では、公式ドキュメントを読んでherehere

0

あなたはおそらくAsyncTaskと、別のスレッドからデータをフェッチする場合は、あなたが管理を担当している両方の様々なアクティビティやフラグメントのライフサイクルなどonDestroy()などのイベント、および構成によるスレッドとUIスレッドがLoaders

使用を変更します
関連する問題