[英]Can onActivityResult() be called before onCreate()?
理論上可以在onCreate
() 之前調用onActivityResult()
嗎? 我知道它可以在onResume()
之前調用,但讓我們考慮一下這種極端情況:
現在會發生什么? 活動 A 是在收到結果之前重新創建,還是在onCreate()
之前收到結果? 這是否保證每次都以相同的順序排列?
如果您打開應用程序掃描條形碼或拍攝照片或視頻,您通常會看到這一點。 您為此啟動的Activity
需要大量資源,因此 Android 會殺死托管您的應用程序的操作系統進程。
當您啟動的Activity
想要將結果返回給您的應用程序時,會發生以下情況:
Application
實例(或您的應用程序的自定義實例)並在其上調用onCreate()
Activity
實例,它將獲得結果(調用startActivityForResult()
的那個)Activity
上調用onCreate()
。 在這種情況下,傳遞給onCreate()
的Bundle
是最近用於保存Activity
實例 state 的Bundle
(來自onSaveInstanceState()
)。Activity
上調用onStart()
Activity
上調用onActivityResult()
Activity
上調用onResume()
那些案例使用
registerForActivityResult()
活動結果 API 將結果回調與代碼中您啟動其他活動的位置分離。 由於重新創建流程和活動時結果回調需要可用,因此每次創建活動時都必須無條件注冊回調,即使啟動其他活動的邏輯僅基於用戶輸入或其他業務邏輯發生
更多詳細信息請參閱從活動中獲取結果
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.