1

我有一个信号让我的应用程序休眠给定的分钟数(使用 AlarmManager),然后将其唤醒。

一切正常,除了屏幕不亮。我正在使用 BroadcastReceiver 类中的唤醒锁:

     KeyguardManager key = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
     KeyguardLock lock = key.newKeyguardLock(TAG);
     lock.disableKeyguard();
     Log.v(TAG, "alarm: disabled keyguard.");

     PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
     gpsMain.wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, TAG);
     gpsMain.wl.acquire();
     Log.v(TAG, "alarm: acquired wakelock");

     Intent i = new Intent();
     i.setAction(CUSTOM_INTENT);
     context.sendBroadcast(i);

然后,当我确定我的应用程序已启动并运行并再次连接时,我会释放唤醒锁。但是,屏幕永远不会出现!只有当我按下电源按钮手动唤醒屏幕时,该应用程序才会真正恢复活力。

我正在开发 HTC Hero。任何帮助将不胜感激..

4

1 回答 1

1

您需要使用ACQUIRE_CAUSES_WAKEUP标志。

于 2010-09-11T11:20:37.677 回答