Тема программно установлена.Как перезагрузить активность, чтобы применить - PullRequest
6 голосов
/ 25 февраля 2012

Как я могу применить тему без перезагрузки всего приложения? Если я сделаю это с startActivity(getIntent()); finish();, действие завершится и не будет перезапущено. Можно ли просто перезапустить / восстановить действие, чтобы применить тему?

Ответы [ 2 ]

16 голосов
/ 10 марта 2012

Это в неправильном порядке.

    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);.Вам нужно уничтожить действие и создать его снова и немедленно вызвать setTheme(THEME); в onCreate ()

1 голос
/ 03 декабря 2013
Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage( getBaseContext().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
...