为了账号安全,请及时绑定邮箱和手机立即绑定

如何为Resume Button创建TimerTask的新实例?

如何为Resume Button创建TimerTask的新实例?

慕妹3242003 2019-04-25 18:15:58
早上好!我正在尝试为我的游戏做一个暂停按钮,但是当我想要恢复游戏时再次初始化计时器任务时遇到问题。我得到错误“java.lang.IllegalStateException:TimerTask已经被调度”,根据我的研究,因为TimerTask不能被重用,所以必须创建一个新的实例。我尝试在我的MainActivity中创建一个用于此目的的方法,然而,这不起作用。这就是我正在使用的: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();                 }             });         }     };我想知道的是,每当我按下恢复按钮时,我如何创建一个新的TimerTask(如“animationTask”)?
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 456 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号