1

我正在从服务启动一项活动。我在服务启动之前获取了部分唤醒锁。

PowerManager mgr = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
lockStatic=mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, LOCK_NAME_STATIC);
lockStatic.setReferenceCounted(true);

我从这样的服务开始活动:

Intent intent = new Intent(mContext, NotificationActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

在我的活动类中,我添加标志以在屏幕锁定时显示活动,如下所示:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
    /*Code to open a Dialog*/
}

当我调试所有代码时,一切正常。Activity 调用成功。但是如果屏幕被锁定(没有安全锁键盘保护),手机屏幕不会显示活动。我必须手动解锁手机,然后才能从正在运行的应用程序列表中看到活动。

4

1 回答 1

1

如此处所述您还必须为您的活动设置FLAG_FULLSCREEN

于 2014-07-11T08:36:53.383 回答