Window.OnWindowDismissedCallback 在 Window 被關閉/移除時 觸發,典型場景包括:
dialog.dismiss()、popupWindow.dismiss()、activity.finish()。// WindowManagerService.java
void removeWindow(WindowState win) {
...
if (win.mAttrs.type == TYPE_APPLICATION) {
// 觸發 OnWindowDismissedCallback
win.mCallbacks.onWindowDismissed();
}
}
dismiss() 同樣觸發,與輸入設備無關。回調運行在 UI 線程,耗時操作需異步處理;不要在回調中彈出新 Dialog,易導致 Window 管理器死鎖。