android,处理配置变更的实现方法
admin
2023-05-03 02:40:31
目录

    1.配置变更

    某些设备配置可能会在运行时发生变化(例如屏幕方向、键盘可用性,以及当用户启用多窗口模式时)。发生这种变化时,Android 会重启正在运行的 Activity(先后调用 onDestroy() 和 onCreate())

    这种问题如果不处理会导致本来已经捆绑到控件上的数据发生丢失,以下便是如何处理这种问题的两种解决方法(第一个是保存数据,第二个是通过配置使数据不丢失)

    2.处理配置变更之:在配置变更期间保留对象

    可以使用viewmodel实现

    3.处理配置变更之:自行处理配置变更

     3.1通过配置阻止activity重启

    可通过配置activity标准中的configChanges属性来声明 Activity 自行处理配置变更,从而阻止系统重启 Activity,该属性的值表示要处理的配置
    如果要阻止屏幕转动需要配置"orientation" 和 “screenSize”

    “keyboardHidden” 值可在键盘可用性发生变更时阻止重启

    3.2 配置变更监听

    如果配置发生改变后你需要做一些操作,可以从写onConfigurationChanged去监听改变如下是监听屏幕方向代码

    @Override
        public void onConfigurationChanged(Configuration newConfig) {
            super.onConfigurationChanged(newConfig);
            if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
                Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
            } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
                Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
            }
        }

    到此这篇关于android 处理配置变更的实现方法的文章就介绍到这了,更多相关android 配置变更内容请搜索趣讯吧以前的文章或继续浏览下面的相关文章希望大家以后多多支持趣讯吧!

    相关内容

    热门资讯

    demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
    阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
    猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
    北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...