Java 在Android中使用TimerTask

Java 在Android中使用TimerTask,java,android,final,timertask,Java,Android,Final,Timertask,我试图创建一个方法,在一定时间后将布尔值更改为false。到目前为止,我已经: public void changeBool(int-timeoutMillis,boolean-toturnflse){ TimerTask tt=新的TimerTask(){ @凌驾 公开募捐{ toTurnFalse=假; } }; mTimer.时间表(tt,timeoutMillis); } 但是我得到了一个错误:toTurnFalse=false要求我将其更改为最终变量,但我不想这样做,它本身也会产生不同

我试图创建一个方法,在一定时间后将布尔值更改为false。到目前为止,我已经:

public void changeBool(int-timeoutMillis,boolean-toturnflse){
TimerTask tt=新的TimerTask(){
@凌驾
公开募捐{
toTurnFalse=假;
}
};
mTimer.时间表(tt,timeoutMillis);
}


但是我得到了一个错误:
toTurnFalse=false
要求我将其更改为
最终
变量,但我不想这样做,它本身也会产生不同的错误。如何避免
final
变量问题?

尝试编写
布尔tuTurnFalse=false
而不是
tuTurnFalse=false

相反,您应该做的是将状态变量作为活动类中的全局成员,然后使用TimerTask通过处理程序,并更新变量的状态


另一种可能性是,如果您在短时间内计时,您可以通过处理程序发送延迟消息,而不需要时间任务。

通过使用
toTurnFalse
我尝试使用传递到方法中的布尔值。进行此更改只会生成一个新的布尔值并将其设置为false。