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

mHandler.removeMessages(TIME_CHANGED); 为什么要加上这一句,不是很明白,为什么在第二关的时候,时间会加速了?

/**
  * 判断用户游戏是都成功
  */
 private void checkSuccess()
 {
  boolean isSuccess = true;

  for (int i = 0; i < mGamePintuItems.length; i++)
  {
   ImageView imageView = mGamePintuItems[i];
   if (getImageIndexByTag1((String) imageView.getTag()) != i)
   {
    isSuccess = false;
   }
  }

  if (isSuccess)
  {
   isGameSuccess = true;
   mHandler.removeMessages(TIME_CHANGED);

   Toast.makeText(getContext(), "Success level up !!!",
     Toast.LENGTH_LONG).show();
   mHandler.sendEmptyMessage(NEXT_LEVEL);
  }

 }

正在回答

2 回答

因为游戏每升级一次就会触发TIME_CHANGED的消息队列发送一次,而每次的TIME_CHANGED消息队列都因为有 mHandler.sendEmptyMessage(NEXT_LEVEL)在继续发送,所以如果升级了游戏,前面那个游戏等级的TIME_CHANGED消息就要remove掉  这是我的理解

1 回复 有任何疑惑可以回复我~

因为不移除的话原来的sendEmptyMessage还在发送,这样就发送了两次,时间就会变快了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android美女拼图小游戏
  • 参与学习       25697    人
  • 解答问题       97    个

本视频教程将带领大家通过自定义控件实现一个拼图游戏

进入课程

mHandler.removeMessages(TIME_CHANGED); 为什么要加上这一句,不是很明白,为什么在第二关的时候,时间会加速了?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信