2017-02-26 15 views
1

私のフラグメントにはListViewがあります。 ListViewの内容はwebserverからダウンロードされます。明らかに、私は一度にすべてをダウンロードするわけではありません。たとえば、30個のアイテムをダウンロードします。そして、onScroll私はn-thページをダウンロードするつもりです。動的で怠惰なListView

  1. 解決方法

私は2つのソリューションを参照してください。私は、バックグラウンドスレッドを開始しましたし、スクロールの上、それは次のページをダウンロードし、UIスレッドに渡す

A.を。私は要素をダウンロードするスレッドが1つあるので、良い解決策であるようです。

B. AsyncTask onScrollを実行します。それは、すべてのスクロール=新しいスレッドを作成する(それは比較的高価です)ソリューションが悪いようです。

あなたはどう思いますか? Androidに最適なソリューションは何ですか?

+0

あなたは解決策Aのために解決したようです。しかし、各スクロールで1ページをダウンロードする必要があるとすれば、効率が悪いと思います。ダウンロードとキャッシングはどうですか? – afaolek

+0

私は通常、ソリューションAを使用します。他のアプリをチェックすることができます。リストの最後までスクロールすると、次の新しいページのリストが表示されます。 –

答えて

0

あなたが説明したどちらの方法も問題ありません。 AsyncTaskは実行が制限されているため良いです。彼の状態を多く管理する必要はありません。ですから、作成して起動するのは大丈夫です。しかし、Threadの場合は、ライブを維持して、リクエストの配信を管理し、何らかの形で情報をUIスレッドに返す必要があります。したがって、単純化するとカスタムAsyncTaskを作成するだけです。あなたの解決策は一度に複数の負荷を作成するべきではありません - 何らかの種類の制限が導入された場合。

また、他の解決策を検索することができますInfinite Scrollingアンドロイドです。 Hereは読みやすいリソースです。

関連する問題