Android 消息机制有关问题

求助:Android 消息机制问题本帖最后由 Bluebluesea 于 2012-12-25 09:23:13 编辑while (true){if(currentT

求助:Android 消息机制问题
本帖最后由 Bluebluesea 于 2012-12-25 09:23:13 编辑 while (true)
    {
           
      if(currentTimes < totalTimes)
      {
      goToSleep(0);
      }
      else
      break;
      currentTimes++;
    }


 public void enableAlarm()
  {
    mAlarm = ((AlarmManager)getSystemService("alarm"));
    System.out.println("enableAlarm:mSleepSecInput");
    System.out.println(mSleepSecInput);
    mAlarm.set(0, System.currentTimeMillis() + 1000L * mSleepSecInput, mSender);
  }

  void goToSleep(long paramLong)
  {
    Message localMessage = mHandler.obtainMessage();
    if (paramLong == 0L)
      mHandler.sendMessage(localMessage);
    else
      mHandler.sendMessageDelayed(localMessage, paramLong);
  }


class MyHandler extends Handler
  {
    MyHandler()
    {
    
    }

    public void handleMessage(Message paramMessage)
    {
      enableAlarm();
      pm = ((PowerManager)getSystemService(Context.POWER_SERVICE));
      pm.goToSleep(SystemClock.uptimeMillis());
     finish();
    }
  }

想实现输入睡眠20s唤醒30s这样循环10次,打log发现每次都是while很快执行完了,然后才调用handleMessage并且只睡眠1次,不知道问题出在哪里
[解决办法]
while 循环设置一个标签 每次你发送消息后 改变标签,让循环空执行,message处理完毕,动作执行结束以后再改变标签 让循环进行下一次