美文网首页
Activity类的recreate()

Activity类的recreate()

作者: wenSome | 来源:发表于2023-07-19 14:00 被阅读0次

    recreate在Activity类的成员函数,用于重新创建当前Activity。
    当调用recreate()时,系统会销毁当前的Activity实例并重新创建一个新的实例,然后重新调用onCreate()来重新初始化Activity

    recreate()函数通常在需要重新加载Activity的情况下使用,例如应用黑夜白天模式发生更改时或者某些配置发生变化时。通过调用recreate(),可以使Activity重新应用新的配置,并且可以使界面上的各个组件重新初始化。

    以下是一个示例代码,展示了如何使用recreate()函数:

        R.id.nav_night_mode -> {
            if (SettingUtil.getIsNightMode()) { // 获取PreferenceManager是否已开启夜间模式
                SettingUtil.setIsNightMode(false)// 设置为白天模式
                AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
            } else {
                SettingUtil.setIsNightMode(true)
                AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
            }
            window.setWindowAnimations(R.style.WindowAnimationFadeInOut)
            recreate()
        }
        
        override fun recreate() {
            ...(逻辑代码)
        }
    

    在这个示例中,当点击按钮时,recreate()函数会被调用,从而销毁当前的Activity实例并创建一个新的实例。

    需要注意的是,recreate()函数只能在Activity的主线程中调用,并且只需调用函数本身,无需传递任何参数。

    相关文章

      网友评论

          本文标题:Activity类的recreate()

          本文链接:https://www.haomeiwen.com/subject/eqaoudtx.html