プログラムで設定します。適用されるアクティビティをリロードする方法
-
12-11-2019 - |
質問
アプリ全体を再起動せずにテーマを適用する方法は?startActivity(getIntent()); finish();
で実行すると、アクティビティは終了し、再起動しないでください。テーマを適用するためにアクティビティを再起動/再作成することは可能ですか?
解決
誤った順序にあります。
finish();
intent = new Intent(this, <your_activity>.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
.
これは正しい順序です。
テーマはsuper.onCreate(savedInstanceState);
が呼び出される前に設定できます。アクティビティを破棄してもう一度作成し、oncreate()でsetTheme(THEME);
を再度作成する必要があります。
他のヒント
Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage( getBaseContext().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
. 所属していません StackOverflow