是因为在切换主题时,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的重新创建。
云+社区开发者大会(杭州站)
Hello Serverless 来了
Elastic 中国开发者大会
云+社区技术沙龙[第7期]
云+社区技术沙龙[第17期]
小程序·云开发官方直播课(数据库方向)
T-Day
DBTalk技术分享会
云+社区技术沙龙 [第31期]
领取专属 10元无门槛券
手把手带您无忧上云