微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 仍然使用configChanges重新创建Activity

据我了解,如果您在清单中的活动中插入’ 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 举报,一经查实,本站将立刻删除。

相关推荐