10

私のランチャー アクティビティ、つまり MainActivity は、使用中に 2 回インスタンス化され、 AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES) これが 2 つのネットワーク呼び出しにつながり、奇妙な動作をします。

これを制御して、一度だけ初期化するものはありますか?. 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()
}
4

3 に答える 3

14

私の実践のいくつかを試した後、解決策を見つけました

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

onCreate() のスーパーの前にダーク モード関数を呼び出す

インスタンス化アクティビティを 2 回防止します。

于 2020-04-09T21:11:02.517 に答える