複数の画像URLからビットマップを取得してarraylistに追加しようとしていますが、私はこれに以下のコードを使用しています。Androidスレッドの同期
for (int j = 0; j <= imagePaths.size() - 1; j++) {
final String urltemp = "http://SiteName/" + imagePaths.get(j);
new Thread(new Runnable() {
@Override
public void run() {
try {
final URL url = new URL(urltemp);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = null;
input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
arrayList.add(myBitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
コードは問題なく動作しますが、ArryListの画像の順序はランダムに変更されます。 forループの内部でスレッドを同期させると、ループの順番で画像が追加されます。
を私はThread.joinを(追加することによってそれを解決した)、私はそれが他のスレッドを待つようになります知っています。 – Manish