我知道在佈局方向發生變化時XML佈局會重新加載。但是,Java代碼呢?或者一切都保持不變,只有OnSaveInstanceState
等被android系統調用?在定位更改期間,Java代碼是否也被重新加載?
0
A
回答
1
根據android文檔,當屏幕旋轉時,Android重新啓動正在運行的Activity(調用onDestroy(),然後是onCreate())。重新啓動行爲旨在通過使用與新設備配置相匹配的備用資源自動重新加載應用程序來幫助您的應用程序適應新的配置。
所以是的java代碼也重新加載方向更改。
要正確處理重新啓動,重要的是您的活動通過正常的Activity生命週期恢復其以前的狀態,在生命週期中Android會在銷燬活動之前調用onSaveInstanceState(),以便保存有關應用程序狀態的數據。然後可以在onCreate()或onRestoreInstanceState()期間恢復狀態。
0
當屏幕面向你將失去的數據,因爲這樣你就不得不保存數據使用它會創造一個全新的活動的onSaveInstanceState
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
// Save UI state changes to the savedInstanceState.
savedInstanceState.putString("MyString", "Welcome back to Android");
// etc.
super.onSaveInstanceState(savedInstanceState);
}
//onRestoreInstanceState
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// This bundle has also been passed to onCreate.
String myString = savedInstanceState.getString("MyString");
}
0
我假設你用Java代碼的意思被重新加載是其中的onCreate和在恢復方法被稱爲一個旋轉,答案是肯定的,也可以使用savedInstancestate實例來保存旋轉過程中的數據
0
是的,基本上,當您將方向更改爲橫向或縱向時,MainActivity的OnCreate方法將再次被調用。包括初始化主類在內的所有事情都發生在這裏。這是Android的行爲,同時改變移動設備的方向。
相關問題
- 1. 在定位更改期間,Android是否重用視圖
- 2. 檢查代碼是否被更改
- 3. 設置圖片的源代碼是否也加載源代碼?
- 4. 重新加載jqgrid的Java代碼
- 5. 如何在代碼更改時重新加載html頁面
- 6. Django和Celery - 在更改後將代碼重新加載到Celery
- 7. 單擊刷新/重新加載代碼更改不會生效
- 8. 在定位更改上重新加載web應用程序
- 9. 更改jQuery加載代碼
- 10. 代碼更改時實時重新加載
- 11. webapp2:自動重新加載代碼更改
- 12. dev_appserver.py不會重新加載更改後的代碼
- 13. 當Django代碼更改時是否需要重新啓動uWSGI?
- 14. 更改代碼後是否需要重新啓動我的resque?
- 15. 我是否必須生成rebel.xml以重新加載JRebel更改?
- 16. 檢測python模塊是否更改,然後重新加載
- 17. 在請求期間ServletContext是否被更新
- 18. 在繼承期間,基類的基類是否也被繼承?
- 19. 是否在更新期間保存savedInstanceState?
- 20. 被重新加載
- 21. 在html更改上重新加載javascript
- 22. 重新加載動態代碼/重新加載類型
- 23. 如何確定在MongoDB更新期間是否實際更改了文檔
- 24. 重新加載Java Applet重新加載
- 25. 定期刷新/重新加載活動
- 26. 如何爲dotnet核心(web Api)代碼更改以及TypeScript代碼更改啓用實時重新加載
- 27. 重新加載/重定向期間保持變量結果
- 28. 頁面加載期間標籤更改
- 29. 如何讓lib /中的代碼在文件更改時自動重新加載?
- 30. Zeus無法在Rails的模型文件中重新加載代碼更改