簡體   English   中英

方向更改時的getIntent() - 如何處理?

[英]getIntent() when orientation changes - how to handle this?

這感覺就像一個noob問題,但在Android中,當方向改變時,Activity被銷毀並重新創建,並且onCreate()被重新調用。 可以通過savedInstanceState包保存內部狀態。 到現在為止還挺好。

但是在我的應用程序中,我有一個活動,通常通過startActivityForResult()從另一個活動調用,它傳遞了一堆參數。 onCreate()中 ,目標活動執行getIntent()來檢索傳入的數據。 問題是,當該活動在屏幕上並且我翻轉方向時它會崩潰。 它在onCreate()代碼中崩潰,它調用getIntent() 我認為它正在崩潰,因為沒有什么可以“獲取”,因為在這種情況下,它是從系統而不是從其他活動調用的。

處理這個問題的正確方法是什么? 如何判斷我的onCreate()是否由於方向更改而被調用,所以我不嘗試調用getIntent() 或者我只是想到這個錯誤? 先感謝您。

您可以保存savedInstanceState中getIntent()方法獲得的詳細信息。 這意味着,在onSaveInstanceState(Bundle)存儲使用getIntent()onCreate()使用的信息。 當您新創建activity ,在onCreate(Bundle savedInstanceState)方法中,bundle savedInstanceState為null。 所以你可以在你的onCreate(Bundle savedInstanceState)創建一個檢查條件,如果Bundle savedInstanceState為null,這意味着你需要使用getIntent() else獲取數據,如果它不為null,這意味着有一些oritentation更改,你需要得到使用savedInstanceState包的數據。

暫無
暫無

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

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