14

onCreate私のアプリは、( で)を呼び出して、新しい「没入モード」を使用します。

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

これはうまく機能しますが、ユーザーがポップアップを承認しました。私が理解している限り、ポップアップはシステムによって自動的に生成されるため、この状況を変えるために私にできることは何もありませんよね?

この問題は、次のように再現できます。

  1. 没入型アクティビティを起動 [ポップアップは表示されず、最初の起動時のみ (正しく)]
  2. アクティビティが表示されている間に電源ボタンを押して画面をオフにします
  3. 電源ボタンをもう一度押すと、画面がオンになります
  4. ボタンやメニュー オプションなどから、finish() を呼び出してアクティビティを閉じます。
  5. アクティビティを再度起動 - ポップアップが再表示されます

間に電源ボタンを押さずにアクティビティを起動、閉じ、再起動した場合、ポップアップは再表示されません。また、電源ボタンが押されたときにアクティビティが一番上にあった場合にのみ再表示されます。

訂正:「finish()」を呼び出してアクティビティを閉じる必要があります (たとえば、ボタンまたはメニュー オプションから)。アクティビティがバックキーで閉じられている場合、正しく機能します。

ここにサンプル アプリをアップロードしました: https://github.com/niko001/com.greatbytes.immersivebug/tree/master/Test5

編集: 「パニックモード」を無効にするXposedモジュールができたので、これが面倒だと思うのは私だけではないと思います;)

4

2 に答える 2

4

より簡潔に言うと、K では、ユーザーが没入モードに入るときに次の場合に確認が表示されます。

  • そのアプリ(パッケージ)についてはまだ確認していません。
  • 前回没入モードになったとき、彼らは「パニック」になりました。この場合の「パニック」とは、画面をオフに切り替えてから、5 秒以内に (デフォルトで) 再びオンにすることを意味します。
于 2013-12-17T16:36:11.693 に答える