2016-05-22 5 views
0

Я показываю всплывающее окно, когда экран заблокирован, когда происходит какое-то событие.android - show Диалоговое поведение над заблокированным экраном без разблокировки

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | 
      WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | 
      WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 
} 

Проблема - после того, как много разочарований я нашел answer, говоря, что это не работает, когда activity использует Theme.Dialog.

Я хочу, чтобы моя деятельность была , а не быть полноэкранным, ее предполагается быть более или менее похожим на уведомление всплывающего окна sms. как я могу это сделать без темы Theme.Dialog?

ответ

0

Не уверен, если это то, что вы ищете, но это wraped все в окне, которое выскакивает для меня:

Ключевой частью кода «WRAP_CONTENT»:

WindowManager mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE); 
    View mView = View.inflate(getApplicationContext(), R.layout.dialogue_page, null); 
    WindowManager.LayoutParams mLayoutParams = new WindowManager.LayoutParams(
      ViewGroup.LayoutParams.WRAP_CONTENT, 
      ViewGroup.LayoutParams.WRAP_CONTENT, 0, 0, 
      WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, 
      WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED 
        | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD 
        | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON 
        | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, 
      PixelFormat.RGBA_8888); 
    mWindowManager.addView(mView, mLayoutParams);