Séché de thème programmatique. Comment recharger l'activité pour appliquer
-
12-11-2019 - |
Question
Comment puis-je appliquer le thème sans redémarrer l'ensemble de l'application? Si je le fais avec startActivity(getIntent()); finish();
L'activité quitte et ne redémarrez pas. Est-il possible de redémarrer / recréer l'activité pour appliquer le thème?
La solution
C'est dans l'ordre incorrect.
finish();
intent = new Intent(this, <your_activity>.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
C'est l'ordre correct.
Le thème peut être défini avant super.onCreate(savedInstanceState);
est appelé. Vous devez détruire l'activité et le créer à nouveau et appeler immédiatement setTheme(THEME);
dans onCreate ()
Autres conseils
Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage( getBaseContext().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow