Androidのサーバーからオブジェクトを読み込もうとしています。このオブジェクトはスレッドにロードされます。ロードが終了すると、_objectHandlerが呼び出され、オブジェクトからいくつかのキー値(たとえば、_filenameキー)が取得されます。ファイル名を取得するたびに表示したい。このため、2番目のスレッドでロードされたオブジェクトの要素をループし、値がロードされるたびに_handlerを呼び出しています。取得したいのはすべての_filename値ですが、取得しているのは_fielNameの最後の値だけです。私が間違っていることは何ですか?
ArrayList <myObject> object;
String filename;
Thread thread = new Thread (MyActivity.this);
thread.start();
public void run() {
Looper.prepare();
try {
object = getObjectFromServer();
} catch (Exception e) {
e.printStackTrace();
}
_objectHandler.sendEmptyMessage(0);
Looper.loop();
}
Handler _objectHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
for (int i = 0; i < object.size(); i++) {
myObject obj= object(i);
new Thread(new Runnable() {
public void run() {
filename= obj.getFileName();
Message msg = new Message();
_handler.sendEmptyMessage(0);
}
}).start();
}
}
};
Handler _handler = new Handler() {
@Override
public void handleMessage(Message msg) {
Log.i("The fielname is ", " filename" + filename
}
};