本帖最后由 Bluebluesea 于 2012-12-25 09:23:13 编辑

解决方案 »

  1.   

     mHandler.sendMessageDelayed(localMessage, paramLong*1000);  ?
      

  2.   

    对消息机制不熟悉,我觉得应该是进入while循环后,goToSleep一次就会调用相应的handleMessage进入睡眠一次,然后alarm唤醒,唤醒30s后再进入第二次while循环,goToSleep再调用handleMessage进入睡眠。可事实不是这样的
      

  3.   

    while 循环设置一个标签 每次你发送消息后 改变标签,让循环空执行,message处理完毕,动作执行结束以后再改变标签 让循环进行下一次
      

  4.   

    谢谢,现在while循环问题确实是解决了,我设置循环执行2次,每次睡眠20s,唤醒15s,
    while ((currentTimes < totalTimes) && messageFlag)
        {
          goToSleep(0L);
          }handleMessage:
            currentTimes = (1 + currentTimes);
            enableAlarm();
            pm = ((PowerManager)getSystemService(Context.POWER_SERVICE));
            pm.goToSleep(SystemClock.uptimeMillis());
            finish();
            messageFlag = true;可是它会睡眠40s的时候才会唤醒,然后执行结束,第一次循环进入睡眠,然后处于睡眠时似乎第一次handle结束了,但是没有唤醒,就进入第二次循环了,这样第二次循环结束才会唤醒,按道理我的enableAlarm已经设置了alarm的时间是1次睡眠的时间也就是20s,为什么没有唤醒呢,向大侠请教
      

  5.   

    问题解决了,谢谢
    shen332401890 
    顾小林