当前位置: 代码迷 >> Android >> Android 消息机制有关问题
  详细解决方案

Android 消息机制有关问题

热度:83   发布时间:2016-05-01 12:08:11.0
求助: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处理完毕,动作执行结束以后再改变标签 让循环进行下一次
  相关解决方案