Android Activity 在使用暗模式时被实例化两次

标签 android android-activity android-lifecycle android-darkmode

我的启动器 Activity ,即 MainActivity 在使用时被实例化了两次AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)这导致两个网络调用并做出奇怪的行为。

有什么可以控制它并只初始化一次吗?
我试过使用 launchMode = "singleTop"和 "singleInstance"

 override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
    mRequestQueue = Volley.newRequestQueue(this)
    Log.e(TAG,"Skillet")
    loadStateData()
    initializeListeners()
}

最佳答案

在尝试了一些我的做法后找到了解决方案

override fun onCreate(savedInstanceState: Bundle?) {
    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    }

在 onCreate() 的 super 之前调用暗模式函数

它将防止两次实例化 Activity

关于Android Activity 在使用暗模式时被实例化两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61128208/

相关文章:

java - Android Activity 中未调用 main 方法

android - 如何为其他应用设置屏幕方向?

java - 如何使用 FragmentPagerAdapter 让标签具有不同的内容?

android - 如何使用 AnnotationProcessor 在带有特定包的 java(生成)目录中编写 kotlin 文件

android-activity - android Activity 崩溃无缘无故?也许是因为setcontentview?

java - 向 Activity 发送包数据的 Android 服务为 NULL

android - 当用户滑开时前台服务被杀死

android - Activity没有调用finish? (API 23)

java - 自定义 CoordinatorLayout 行为在第一个事件后丢失触摸输入流

java - Android Activity 中是否需要私有(private)静态 `fields`