亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

第一次執行夜間模式代碼時,會觸發當前重啟

第一次執行夜間模式代碼時,會觸發當前重啟

滄海一幻覺 2023-07-28 15:26:33
第一次執行夜間模式代碼時,它會重新啟動 Activity第二次,代碼將正常工作并對程序進行更改我使用了以下代碼:public class Splash extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_splash);        new CheckedNightMode().execute();    }    private class CheckedNightMode extends AsyncTask<Void, Void, Void> {        @Override        protected Void doInBackground(Void... voids) {            SharedPreferences sharedpreferences = getApplicationContext().getSharedPreferences("Night_Mode", Context.MODE_PRIVATE);            boolean state = sharedpreferences.getBoolean("State", false);            if (state) {                AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);            } else {                AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);            }            return null;        }        @Override        protected void onPostExecute(Void aVoid) {            super.onPostExecute(aVoid);            checkLanguage();            new Handler().postDelayed(new Runnable() {                @Override                public void run() {                    startActivity(new Intent(Splash.this, Main.class));                    finish();                }            }, 3000);        }        private void checkLanguage() {            SharedPreferences sharedpreferences = getApplicationContext().getSharedPreferences("Language", Context.MODE_PRIVATE);            String checkedLanguage = sharedpreferences.getString("Select", "en");            setLanguageState(checkedLanguage);        }主題Theme.MaterialComponents.DayNight.NoActionBar我試過了,但還是一樣
查看完整描述

2 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

我的代碼是正確的。谷歌自己的文檔指出,如果你想在運行時更改主題,則當前操作將重新啟動。

注意:從 AppCompat v1.1.0 開始,setDefaultNightMode() 會自動重新創建任何已啟動的活動。


查看完整回答
反對 回復 2023-07-28
?
達令說

TA貢獻1821條經驗 獲得超6個贊

這是默認行為。由于資源已更改,android:configChanges 默認重新啟動 Activity。本質上,您遇到的是預期的行為,而不是錯誤,您可能應該重新啟動活動,否則您將不得不遞歸地重新實例化/重新配置每個視圖,這將變得復雜且有錯誤。



查看完整回答
反對 回復 2023-07-28
  • 2 回答
  • 0 關注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號