我想根据内部类中的某些值返回一些值:
public boolean rename(File file) {
new OnResultListener() {
@Override
public void onResult(AsyncResult<CharSequence> result) {
// some codes
// Here is what I want to do
if (succeed) {
// rename return true
} else {
// rename return false
}
}
}
}
答案 0 :(得分:-1)
你不能,也没有意义。这是两个不同的函数,可以很好地在不同的线程上调用。如果你坚持要返回一些东西,你必须做的是“重命名”函数本身应该接收一个回调作为一个成功调用的参数。也就是说,如果下游调用是异步的,那么调用它的那个也应该是。
答案 1 :(得分:-1)
另一种方法是让一个调用函数(&#34;重命名&#34;在这种情况下,假设它调用通知OnResultListener的函数)等待一些互斥锁。然后,在接收结果时的嵌套方法中,设置一些标志然后调用notify()来唤醒等待持有的线程。