是否可以在Activity.runOnUiThread()方法后返回一个值.
runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
int var = SOMETHING;
// how to return var value.
}
});
Run Code Online (Sandbox Code Playgroud)
在这篇文章中,我看到在Runnable.run()方法之后返回值是不可能的.但是如何使用(实现)另一个接口并在执行后返回一个值.
希望一切都清楚.
编辑
可以帮助别人.
我使用D @ Zapl的解决方案,并在Callable类构造函数中传递一个参数,如下所示:
class MyCallable implements Callable<MyObject> {
int param;
public MyCallable (int param) {
// TODO Auto-generated constructor stub
this.param = param;
}
@Override
public MyObject call() throws Exception {
// TODO Auto-generated method stub
return methodReturningMyObject(this.param);
}
}
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中我有按钮,单击时将查询数据库并在屏幕上显示结果.查询操作通常需要1~3秒.这些按钮将经常被点击.
我已经在AsyncTask和Thread上实现了这个动作,但看起来差别很小.
但是从长远来看,尤其是在按钮被多次点击时,这在资源(CPU,内存)方面会更有益吗?