Android 2.2实现Runnable Public void run()没有被调用

时间:2011-09-20 09:01:29

标签: android runnable

我有以下内容: -

public class resApp extends MapActivity implements Runnable {

    public void run() {
        searchImage.setVisibility(View.GONE);
    }

}

我还有一个在此之前运行的后台线程,但似乎运行正常。

当我运行应用程序时,run()永远不会被调用。

你能帮忙吗? 这段代码大约在6个月前工作,但设备是2.1。

由于

克里斯


修改

我已经实施了

 private Handler handler;

 handler = new Handler() {
 @Override
public void handleMessage(Message msg) {
    if (msg.toString().equalsIgnoreCase("1")) {
    ad.dismiss();
    } else {
    pd.dismiss();
    }
}
 };

作为一个例子,我已经有了一个在后台运行的异步任务,在2.1中我可以有getter和setter。我现在不得不将它们拉出来并将它们放入run()方法,因为2.2不喜欢在异步任务中设置onclicklistener。 我需要做的就是在post执行时调用run()方法但是已经尝试了所有东西: -

protected void onPostExecute(Object result) {
// Pass the result data back to the main activity
if (dialog != null) {
    resApp.this.dialog.dismiss();
}
}

我可以这样做: -

 handler = new Handler() {
    @Override
public void handleMessage(Message msg) {
    this.resApp.run();
}
 };

1 个答案:

答案 0 :(得分:2)

您可以使用Handler调用run()方法。

Handler myHandler = new Handler();
resApp myObj;

使用myHandler.post(myObj);

调用它