早上好!我正在嘗試為我的游戲做一個(gè)暫停按鈕,但是當(dāng)我想要恢復(fù)游戲時(shí)再次初始化計(jì)時(shí)器任務(wù)時(shí)遇到問題。我得到錯(cuò)誤“java.lang.IllegalStateException:TimerTask已經(jīng)被調(diào)度”,根據(jù)我的研究,因?yàn)門imerTask不能被重用,所以必須創(chuàng)建一個(gè)新的實(shí)例。我嘗試在我的MainActivity中創(chuàng)建一個(gè)用于此目的的方法,然而,這不起作用。這就是我正在使用的:public class MainActivity extends AppCompatActivity{
public FishView gameView;
//pause variables
Button pauseButton;
private boolean pauseFlag = false;
private final long animationPeriod = 600;
Timer movementTimer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
screen = findViewById(R.id.gameScreen);
gameView = new FishView(this);
screen.addView(gameView);
pauseButton = findViewById(R.id.pauseButton);
movementTimer = new Timer();
movementTimer.scheduleAtFixedRate(animationTask, 0, animationPeriod);
}
//this is the timer I want to reuse
private TimerTask animationTask = new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
@Override
public void run() {
//set animation
int selectedFish = gameView.getSelectedFish();
if (selectedFish==1){
gameView.setSelectedFish(0);}
if (selectedFish==0){
gameView.setSelectedFish(1); }
//update screen
gameView.invalidate();
}
});
}
};我想知道的是,每當(dāng)我按下恢復(fù)按鈕時(shí),我如何創(chuàng)建一個(gè)新的TimerTask(如“animationTask”)?
添加回答
舉報(bào)
0/150
提交
取消