簡體   English   中英

當用戶從最近關閉應用程序時調用 onPause()

[英]Is onPause() called when user closes the app from recents

我讀了很多關於活動生命周期的文章,但找不到簡單的答案。 假設有人按下切換應用程序硬件按鈕。 當應用程序切換到不同的應用程序時,保證會調用onPause() 同時按返回(關閉應用程序)或主頁將調用onPause()

但問題來了。 當我打開可以在應用程序之間切換的應用程序列表時,只需單擊按鈕即可調用onPause()嗎? 我的意思是單擊Switch apps會調用onPause()嗎?

我不清楚,文檔也沒有描述這種情況。

編輯:我說onPause()僅在單擊按鈕后不被調用是錯誤的。 對不起。

基於Activity page ,將調用onPause() 任何在前台的應用程序都會在用戶拉起應用程序列表開始刷掉應用程序的那一刻調用onPause()

假設有人正在按下切換應用程序硬件按鈕。 在有人從列表中選擇不同的應用程序之前,不會調用onPause()

您確定當您按下讓您選擇其他應用程序的按鈕時,在您選擇一個應用程序之前不會調用onPause()嗎? 我不信。

應用程序最初會在應用程序列表出現之前調用 onPause 方法,但不會在它被刷掉時(甚至在選擇另一個應用程序時)

是的 onPause() 總是在 onDestroy() 之前被調用。 它是這樣的: onPaused() --> onStop() --> onDestroy()

在此處輸入圖片說明

始終遵循箭頭的方向。 無論如何,這些方法以連續的方式進行。 無論情況如何,像 onStop() 這樣的方法總是在 onPause() 之后和 onDestroy() 之前執行。

活動生命周期始終按照文檔中給出的順序調用。 含義onCreate > onStart > onResume > onPause > onStop > onDestroy 可能會有一些重復的調用,例如在 Activity 進入前台並移動到后台時在onResumeonPause之間來回移動,但它們始終按此順序進行。 意思是,如果您確定onDestroy正在被調用,那么您可以確定onPauseonStop已被調用。

實際上OP是正確的。 我也很震驚。 永遠,顯示最近的應用程序會觸發暫停。 Android 11 的最近更改在選擇其他應用程序之前不會暫停。 這意味着在 Android 上,最近的應用程序中可見的 11 個應用程序是實時的,而不是縮略圖。

如果您要在暫停時顯示隱私屏幕,並在恢復時關閉,您將在舊操作系統的縮略圖上看到隱私,但 11 您會在拇指上看到隱私 flash,因為一旦選擇其他應用程序,它就會消失。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM