【发布时间】:2014-10-26 07:30:29
【问题描述】:
我需要显示一个对话框,无论用户屏幕锁定还是深度睡眠都显示。我目前的情况是:
-
广播接收器启动服务并获取WakeLock
电源管理器 mgr=(PowerManager)context.getSystemService(Context.POWER_SERVICE); lockStatic=mgr.newWakeLock(PowerManager.FULL_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP, LOCK_NAME_STATIC);
-
Service 使用以下设置启动 Activity
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
Activity 启动 DialogFragment
问题是如果屏幕被锁定或处于睡眠状态,对话框不会出现。即使屏幕关闭或锁定,Viber 应用程序和 Line messenger 应用程序中的消息对话框也会弹出。他们是怎么做到的?
编辑
我发现当活动主题设置为 Theme.Holo.Light.NoActionBar.Fullscreen 或任何全屏主题时它可以工作。 :)
【问题讨论】:
标签: android dialog wakelock screen-lock