0

我正在尝试从 Android 中的服务器加载对象。此对象在线程中加载。加载完成后,调用 _objectHandler 以从对象中获取一些键值,例如 _filename 键。每次检索文件名时,我都想显示它。出于这个原因,我在第二个线程中循环加载对象的元素,并在每次加载值时调用 _handler。我想要得到的是所有的_filename 值,但我得到的只是_filename 的最后一个值。我做错了什么?

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
    }
};
4

1 回答 1

0

你可以使用 android.os.Handler 类。这将为您提供一种机制,用于将要在与您自己的线程不同的线程上执行的操作排入队列。

于 2012-06-28T14:24:40.333 回答