Пожалуйста, исправьте несовместимый тип. Int int boolean on timer.schedule run () curInterval, Что не так с моим кодом?
public class HeartbeatPacket implements HeartbeatStop {
private final String TAG = getClass().getSimpleName();
private int curInterval = 0;
private HeartbeatStop heartbeatStop = null;
private final int setInterval;
private Timer timer;
public HeartbeatPacket(HeartbeatStop heartbeatStop, int setInterval) {
this.heartbeatStop = heartbeatStop;
this.curInterval = setInterval;
this.setInterval = this.curInterval;
}
public void callStopFun() {
if (this.heartbeatStop != null) {
this.heartbeatStop.callStopFun();
}
}
public void recover() {
synchronized (this) {
this.curInterval = this.setInterval;
}
}
private void run() {
if (this.timer == null) {
Log.e(this.TAG, "null == timer");
} else {
this.timer.schedule(new TimerTask() {
public void run() {
synchronized (this) {
//this is the problem section
if (HeartbeatPacket.this.curInterval = HeartbeatPacket.this.curInterval - 1 < 0) {
HeartbeatPacket.this.callStopFun();
HeartbeatPacket.this.recover();
HeartbeatPacket.this.stop();
}
}
}
}, 0, 1000);
}
}
public void start() {
recover();
this.timer = new Timer();
run();
}
public void stop() {
this.timer.cancel();
this.timer = null;
}``
}
Я думаю, что компилятор Java должен был жаловаться на if (HeartbeatPacket).this.curInterval = HeartbeatPacket.this.curInterval - 1 <0).Вы случайно не видели сообщение об ошибке компиляции? </p>