我将TimerTask
与一个匿名的“具体”类子类化,这样:
public void setTimedTask() {
/* Note: 'this' implements an interface called UpdateIndicatorsReceiver */
final UpdateIndicatorsReceiver receiver = this;
final TimerTask timerTask = new TimerTask() {
@Override
public void run() {
/* The interface UpdateIndicatorsReceiver has an updateIndicators method */
receiver.updateIndicators();
}
};
/* Code to actually set the timer.... */
}
请注意声明名为final
的本地receiver
字段并将其设置为this
的奇怪之处。是否有更简洁的方法来获取this
的不变更引用,以便在匿名类的run
方法中使用它?
答案 0 :(得分:1)
UpdateIndicatorsReceiver.this.updateIndicators();
答案 1 :(得分:1)
这应该是不必要的;你应该直接调用updateIndicators()
。
即:
public void run() {
updateIndicators();
}
无需receiver
引用。这为我编译。