我需要显示一个对话框,无论用户屏幕锁定还是深度睡眠都显示。我目前的情况是:
广播接收者 发起服务并获取 WakeLock
PowerManager mgr=(PowerManager)context.getSystemService(Context.POWER_SERVICE); lockStatic=mgr.newWakeLock(PowerManager.FULL_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP, LOCK_NAME_STATIC);
服务使用以下设置启动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或 Any FULLSCREEN 主题时它可以工作。:)