當屏幕旋轉或用戶在電話上滑動鍵盤時,如何防止重新啓動活動?這可能嗎?有沒有解決辦法或什麼的?所有相關的答案表示讚賞。方向更改時活動不斷重新啓動
回答
您可以通過在manifest.xml
的activity
元素中聲明特定的屬性來完成此操作。有問題的元素被稱爲android:configChanges
,您需要註冊字符串值orientation
。
<activity android:name=".MyActivity"
android:configChanges="orientation"
android:label="@string/app_name">
現在,當這些配置的一個改變,MyActivity不 重新啓動。相反,活動接收對onConfigurationChanged()的調用 。此方法傳遞一個配置對象 ,它指定新的設備配置。通過讀取 配置中的字段,您可以通過更新界面中使用的資源來確定新配置並進行適當的更改。 在這個方法被調用的時候,你的作業資源對象是 更新基礎上,新的配置,返回的資源,所以你可以 輕鬆重置您的UI元素,而無需系統重新啓動 活動
這樣算下來這會導致您的Activity
無法重新啓動,並且還會回撥到以便您可以自己處理更改。
如果你閱讀文檔here,你會看到,你可以指定你的清單如下:
<activity ...
android:configChanges="orientation">
一旦你有了這個,你可以實現onConfigurationChanged()
方法收到有關方向改變的通知,或者只是使用基類的實現。
複製其他人的好工作 –
@Arvin兩個答案相隔4分鐘。這個答案不太可能是一個「副本」,只是一個同時發佈的等價答案。它始終發生,並不是什麼大不了的事情。除非後面的答案實際上增加了一些有用的東西,否則人們普遍贊成更早的答案。你的評論聽起來像酸葡萄,因爲你自己的答案是低調的。 –
- 1. Eclipse活動在代碼更改時不重新啓動
- 2. 在Android中的方向更改時活動重新加載
- 3. 避免在方向更改時重新啓動線程
- 4. 活動重新啓動時,電話查看模式更改
- 5. 查看模式更改時活動重新啓動
- 6. 字體更改時停止活動重新啓動
- 7. 更好的方法來處理方向更改時的活動重啓?
- 8. 更改活動啓動意向錯誤
- 9. Android活動重新啓動
- 10. 重新啓動應用程序(Oncreate)在方向更改
- 11. Android:切換到橫向/鍵盤時活動重新啓動
- 12. 活動中的Android ListView在更改方向時刷新
- 13. 活動重新啓動時從意向服務重新連接Messenger
- 14. 防止在手機啓動時重新啓動活動?
- 15. Android:在活動啓動時獲取方向(橫向/縱向)
- 16. 廚師不斷重新啓動服務時沒有更改到ERB模板
- 17. 在重新啓動應用程序時重新啓動Android活動
- 18. 在不重新啓動活動的情況下恢復活動
- 19. 如何在重新進入活動時重新啓動CountDownTimer
- 20. 在屏幕方向更改時重新啓動投射自定義頻道
- 21. 更改Android的屏幕方向而不用重新加載活動
- 22. 重新啓動活動,而不是重新創建[Android的]
- 23. 更改診斷日誌重新啓動Web應用程序
- 24. Android:手動屏幕方向而不重新開始活動?
- 25. 從RunOnUIThread更新視圖,直到活動重新啓動
- 26. Seek Bar活動/片段重新啓動後進度未更新
- 27. 方向改變時活動會死亡
- 28. 啓動活動時自動刷新
- 29. 活動重新啓動強制關閉
- 30. 重新啓動活動在微調onItemSelected
你能給我一些示例代碼嗎?我似乎無法得到它的工作。 – gsfd
什麼是你似乎無法工作?你能通過編輯提供你的問題的更新嗎?如果你提到你所嘗試過的東西,以及具體哪些不起作用,這將會有所幫助。 –
除了「方向」之外,根據您的問題,您可能還需要添加相關的鍵盤配置更改以處理鍵盤操作,因此您可能希望放置的值爲「方向|鍵盤|鍵盤隱藏」。正如尼古拉斯所說,你可能想/需要自己處理onConfigurationChanged() – momo