2011-09-20 33 views
1

我有以下几点: -Android 2.2的实现Runnable公共无效的run()没有被调用

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。 所有我需要做的是调用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(); 
} 
}; 
+0

你的代码中调用它是非常不完整的。 Runnable.run不是自己调用的,它可以从Handler调用。 –

+0

嗨老鼠,看看我上面的编辑,感谢帮助。 – user799306

回答

2

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

Handler myHandler = new Handler(); 
resApp myObj; 

,并通过使用myHandler.post(myObj);

+0

谢谢,但这不起作用,你有什么可以称之为运行方法的其他想法。就像我说的相同的代码是在不同的设备上工作。 – user799306

+0

你想继续运行线程或只执行一次..? –

+0

感谢看到我上面的编辑 – user799306