我正在尝试从Android中的服务器加载对象。该对象加载到一个线程中。加载完成后,将调用_objectHandler以从对象获取一些键值,例如_filename键。每次检索文件名时,我都想显示它。出于这个原因,我在第二个线程中循环遍历加载对象的元素,并在每次加载值时调用_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
}
};
答案 0 :(得分:0)
你可以使用android.os.Handler类。这将为您提供一种机制,以便在不同于您自己的线程上执行操作。