非全螢幕 Dialog/Window 不會觸發 Activity 的 onPause/onStop,Activity 仍保持 Resumed 狀態。
| 類型 | 全螢幕 | onPause | onStop | 說明 |
|---|---|---|---|---|
| Activity | 是 | ✅ | ✅ (被覆蓋) | 標準生命週期 |
| Dialog (預設) | 否 | ❌ | ❌ | Activity 仍可見 |
| Dialog (全螢幕主題) | 是 | ✅ | ❌ (通常) | 視窗覆蓋但非 Activity |
| PopupWindow | 否 | ❌ | ❌ | 浮層,不影響 Activity 狀態 |
| PopupWindow (fullscreen) | 是 | ✅ | ❌ | 罕見用法 |
FLAG_FULLSCREEN,AMS 視為遮擋觸發 onPause。@Override protected void onPause() { Log.d("TAG", "onPause"); super.onPause(); }
@Override protected void onStop() { Log.d("TAG", "onStop"); super.onStop(); }
分別彈出普通 Dialog、全螢幕 Dialog、PopupWindow 觀察 Logcat。