一个Runnable是否能返回一个值?我需要在Editable上做一些密集的工作,然后将其返回。以下是我的模拟代码。
public class myEditText extends EditText {
...
private Editable workOnEditable() {
final Editable finalEdit = getText();
Thread mThread = new Thread(new Runnable() {
public void run() {
//do work
//Set Spannables to finalEdit
}
});
mThread.start();
return finalEdit;
}
...
}
显然,我的第一个问题是我试图更改finalEdit,但必须使其成为final才能在线程内外访问,对吗?正确的做法是什么?
Runnable
无法,但Callable
可以。与Executor
一起使用。 - denis.solonenko