据我了解,如果您在清单中的活动中插入’
android:configChanges =“orientation”’,活动将不会被销毁并在方向更改时重新创建.为了测试这个,我创建了一个简单易用的应用程序.然后我在清单中插入了’android:configChanges =“orientation”’.然后我添加了以下方法:
@Override public void onConfigurationChanged(Configuration newConfig) { Log.v(TAG,"onConfigurationChanged:"); super.onConfigurationChanged(newConfig); }
但是,我仍然看到onCreate()被调用.该活动仍在重建中.
好像这不够奇怪,当我将模拟器置于横向模式(Ctrl-F11)时,我没有看到onConfigurationChanged()被调用.只有在我回到纵向模式时才会调用它.不应该双向被称为?当我进入横向和纵向模式时,配置(方向)是否被更改?这毫无意义.
无论如何,这整个活动和定位的事情让我发疯.
解决方法
However,I’m still seeing onCreate() being called. The activity is still being recreated.
仿真器使用侧滑块键盘模拟设备.与您匹配的android:configChanges值将是keyboardHidden,通常与处理非键盘设备的方向一起使用(例如,android:configChanges =“keyboardHidden | orientation”).
话虽这么说,在大多数情况下不建议使用android:configChanges.使用动态片段和setRetainInstance(true),或使用onSaveInstanceState()和onRetainNonConfigurationInstance()来允许销毁和重新创建活动.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。