我试图找出我的用户界面何时运行,并且有一个聪明的想法,即向 uiThread 发布一个可运行的对象,其唯一的工作就是设置一个标志。我尝试使用volatile
关键字 onuiIsRunning
但 eclipse 不允许这样做,我还不明白。
但令我惊讶的是,当我尝试下面没有使用 final 修饰符的代码时uiIsRunning
,我被正确地告知我只能在嵌入式类中使用局部变量,如果该局部变量是final
. 因此,令uiIsRunning final
我惊讶的是,Eclipse 对我的行完全没uiIsRunning = true;
问题,也就是说,Eclipse 认为我可以final
在这个嵌套类中设置变量的值!
如果有人能告诉我我需要做什么来获得我想要的操作:在我当前的线程中将一个标志设置为 false,然后在我发布它以执行它的线程时设置为 true,我将不胜感激。
final boolean uiIsRunning = false;
uiHandler.post(new Runnable() {
@Override
public void run() {
uiIsRunning = true;
}
});