源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Android开发 旋转屏幕导致Activity重建解决方法

  • 时间:2020-09-15 14:45 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Android开发 旋转屏幕导致Activity重建解决方法
Android开发文档上专门有一小节解释这个问题。简单来说,Activity是负责与用户交互的最主要机制,任何“设置”(Configuration)的改变都可能对Activity的界面造成影响,这时系统会销毁并重建Activity以便反映新的Configuration。 “屏幕方向”(orientation)是一个Configuration,通过查看Configuration类的javadoc可以看到其他Configuration还有哪些:如fontScale、keyboardHidden和locale等等。 当屏幕旋转时,这个Configuration就发生了改变,因此当前显示的Activity需要被重建,Activity对象会被终止,它的onPause()、onStop()和onDestroy()方法依次触发,然后一个新的Activity对象被创建,onCreate()方法被触发。假设屏幕旋转前,用户正在手机上填写一个注册表单,如果处理不当,用户会发现旋转后的表单变成空白的了,严重影响使用体验。 要解决这个问题有三种方法: [b]方法1:禁止旋转屏幕[/b] 毫无疑问,这是最懒的办法了,相当于回避了本文提出的问题,方法如下看看就好:
[url=http://developer.android.com/guide/topics/manifest/activity-element.html#config]Android开发文档[/url]不建议使用这种方式处理Configuration改变: Note: Using this attribute should be avoided and used only as a last-resort. Please read Handling Runtime Changes for more information about how to properly handle a restart due to a configuration change. [b]最佳实践[/b] 考虑到旋转屏幕并不是使Activity被销毁重建的唯一因素,仍然推荐前文介绍过的方法:在onPause()里持久化Activity状态,在onCreate()里恢复现场,可以做到一举多得;虽然Google不推荐设置android:configChanges属性的方式,但如果你的Activity横向纵向共用同一个layout文件,方法3无疑是最省事的。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部