解决方案 »

  1.   

    因为手机在充电时不会suspend试着通过用alarm来唤醒
      

  2.   

    连接USB充电时,手机并未进入睡眠状态。PowerManager.SCREEN_DIM_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP在屏幕亮的时候能够保持亮的状态,如果用户按下power键熄屏,在未连接USB的情况下,手机一样会睡眠。
    PowerManager.PARTIAL_WAKE_LOCK才可以做到用户手动熄屏后,CPU仍然不睡眠。但是过15分钟后,如果系统检测到你的应用持有一个WakeLock一直没释放,会强制把你的进程关闭的,然后系统又进入睡眠了。相关的代码你可以看一下frameworks/base/services/java/com/android/server/am/ActivityManagerService.java里的checkExcessivePowerUsageLocked()方法。
      

  3.   

    很显然,插入usb的时候是不会进入deepsleep的。
    在拔掉usb之后,进入了deepsleep,你的程序也得不到运行(被挂起),所以不可能能点亮屏幕。
    正确的做法就是起个alarm,用alarmmanager吧,可以仿照闹钟。
      

  4.   

    guoyoulei520和shadow_dance说的对。
    用alarmmanager可以将手机唤醒,或始终持有PARTIAL_WAKE_LOCK不释放