@ hackbot
onPause () вызывается, когда ваша активность больше не находится на вершине стека активности>.Диалог сам по себе не является Activity, поэтому не заменит текущую> Activity наверху стека, поэтому не заставит ничего делать паузу.
все зависит от реализации ...
Что такое Диалог?это окно , добавленное в Display by WindowManager ///, поэтому окно, когда оно отображается, находится поверх всего .... (Z-порядок)
что такое активность ... есть "вещь, которая также создает свое окно ....
, когда отображается диалоговое окно или его окно становится видимым поверх существующего действия, то оно частично перекрывает окно действия, поэтому существующее действиепереместится в частично невидимое состояние, и вы получите вызов onPause () из ActivityThread .
, но чтобы быть уверенным, что мы также должны рассмотреть здесь одну мысль ...
состояние окна if - это автономное окно , показанное вверху или , это дочернее окно, а его родительское окно - окно активности. ...
поэтому, когда мы знаем
- Window.LayoutParams (FLAGS), мы используем для добавления
- и что такое IBinder используется для окна, чтобы показать
мы покажем, как будет вести себя деятельность, когда окна отображаются каждый разver other .. as каждое окно имеет обратные вызовы , которые они используют действием или диалогом для управления своими состояниями ...
задействованные компоненты:
android.os.IBinder
android.view.Window
android.view.Window.Callback
android.view.WindowManager
android.view.WindowManager.LayoutParams
android.view.Display
btw:
, если вы хотите знать окна на экране [применимо только для вашего процесса - окна принадлежат процессу, а они находятся в изолированной среде - каждый процесс является строго отдельной JVMговоря "ART"], вы можете использовать репродукцию см.
- android.view.WindowManagerImpl
- android.view.WindowManagerGlobal