409 votes

Comment puis-je redémarrer une activité Android

Comment puis-je redémarrer une activité Android ? J’ai essayé ce qui suit, mais l’activité se ferme tout simplement.

653voto

EboMike Points 39257

J'ai fait mon thème switcher comme ceci:

Intent intent = getIntent();
finish();
startActivity(intent);

En gros, je suis appelant finish() première, et je suis en utilisant exactement la même intention cette activité a commencé. Qui semble faire l'affaire?

Mise à JOUR: Comme l'a souligné par Ralf ci-dessous, Activity.recreate() est la manière d'aller de l'API de 11 et au-delà. C'est préférable si vous êtes dans une API11+ environnement. Vous pouvez toujours vérifier la version actuelle et d'appeler l'extrait de code ci-dessus si vous êtes dans l'API de 10 ou au-dessous. (S'il vous plaît n'oubliez pas de upvote Ralf réponse!)

388voto

Ralf Points 3732

Depuis le niveau 11 (Honeycomb) de l’API, vous pouvez appeler la méthode recreate() de l’activité (Merci à cette réponse).

La méthode de recreate() agit comme un changement de configuration, donc votre onSaveInstanceState() et onRestoreInstanceState() méthodes sont aussi appelées, le cas échéant.

135voto

Ben Points 3324

en fait un moyen plus propre pour cela ressemble donc :

118voto

JustinMorris Points 2173

Juste pour combiner les réponses de Ralf et de Ben (y compris les modifications apportées dans les commentaires) :

20voto

Nikhil Dinesh Points 1412

Appelez cette méthode

Merci,

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X