是因为在切换主题时,Activity会被销毁并重新创建。这是因为黑暗模式是通过更改应用的主题来实现的,而主题的更改会导致Activity的重新创建。
在Android中,Activity是应用程序的一个基本组件,用于展示用户界面和处理用户交互。当应用程序切换到黑暗模式时,系统会重新加载应用的主题资源,并重新创建Activity以适应新的主题。
这种行为可能会导致一些问题,例如数据丢失或界面状态的重置。为了解决这个问题,可以使用保存和恢复状态的方法来保留Activity的数据和状态。可以通过重写Activity的onSaveInstanceState()方法来保存数据,并在onCreate()方法中的savedInstanceState参数中恢复数据。
另外,为了避免Activity在切换主题时被实例化两次,可以在AndroidManifest.xml文件中为Activity添加属性android:configChanges="uiMode"。这样做可以告诉系统在切换主题时不重新创建Activity,而是调用Activity的onConfigurationChanged()方法来处理主题的更改。
总结起来,Android Activity在使用黑暗模式时被实例化两次是因为切换主题导致Activity的销毁和重新创建。为了解决这个问题,可以使用保存和恢复状态的方法来保留数据和状态,并可以通过设置android:configChanges属性来避免Activity的重新创建。
领取专属 10元无门槛券
手把手带您无忧上云