【发布时间】:2011-02-15 21:17:23
【问题描述】:
我在屏幕锁定时收到传入的 C2DM 通知。我想使用 Activity 唤醒屏幕并在锁定屏幕顶部显示通知消息。我正在从我的 C2DM BroadcastReceiver 启动通知活动,如下所示:
Intent new_intent= new Intent().setClass( context, EIAlertDialog.class );
new_intent.addFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP );
new_intent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
context.startActivity( new_intent );
在通知Activity的onCreate方法中,我唤醒屏幕如下:
PowerManager powerManager= (PowerManager)getSystemService( Context.POWER_SERVICE );
if (!powerManager.isScreenOn()) {
mWakeLock= powerManager.newWakeLock(
PowerManager.FULL_WAKE_LOCK |
PowerManager.ACQUIRE_CAUSES_WAKEUP,
"My Tag" )
mWakeLock.acquire();
}
屏幕已唤醒,但在我解锁屏幕之前,通知 Activity 不可见。
我意识到我可以使用下面的代码来避免锁定屏幕,但这不是我们所希望的。我希望用户解锁手机,前提是他/她有兴趣阅读/响应通知。
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
);
【问题讨论】:
-
您好像在使用 Android。最好添加 android 标签,以便更多人可以看到您的问题。
-
@f20k,是的,它是 Android,谢谢