我需要顯示一個對話框,可以顯示與用戶屏幕鎖定或處於深度睡眠狀態無關的對話框。我的當前場景爲:如何在viber或Line Messenger的鎖定屏幕上顯示對話框
廣播接收機創始服務並獲取喚醒鎖定
PowerManager的 經理=(電源管理器)context.getSystemService(Context.POWER_SERVICE); lockStatic = mgr.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, LOCK_NAME_STATIC);
服務啓動一個活動用以下設置
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);開始DialogFragment
問題
活動是,如果屏幕被鎖定或睡眠對話不會出現。即使屏幕處於關閉或鎖定狀態,Viber應用程序和Line messenger應用程序彈出窗口中的消息對話框。他們怎麼做?
編輯
嗯,我發現,當活動主題設定爲Theme.Holo.Light.NoActionBar.Fullscreen或任何FULLSCREEN主題它的工作原理。 :)
newKeyguardLock和disableKeyguard方法現在已被棄用。如果屏幕被密碼或圖案鎖定,它會工作嗎? – isumit 2014-09-02 06:35:32
改爲使用FLAG_DISMISS_KEYGUARD和/或FLAG_SHOW_WHEN_LOCKED;如果屏幕被鎖定了密碼或圖案我不確定它 – Rahul 2014-09-02 07:18:05
那麼我發現這些標誌與FullScreen活動一起使用。爲我工作,早些時候我使用Theme.DeviceDefault.Light.Dialog.NoActionBar.MinWidth。但現在我改變了活動的主題爲「Theme.Holo.Light.NoActionBar.Fullscreen」,它的工作原理:) – isumit 2014-09-02 07:20:43