Как вызвать recreate()?

Я знаю, что это, наверное, очень просто, но я просто не могу понять.

Я пытаюсь перезагрузить/воссоздать действие после действия. Я знаю, что могу просто использовать:

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

Но при прочтении ответов на сайте мне говорят использовать 'recreate()' после 11 api. Любая помощь будет оценена, спасибо!

Ответ 1

При использовании метода recreate выполняется

this.recreate()

Он был добавлен только в уровень API 11. Если вы хотите добавить больше устройств, вы можете проверить уровень API и реализовать как метод воссоздания, так и

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

Вы можете использовать оба варианта: создавая оператор if, например...

if (android.os.Build.VERSION.SDK_INT >= 11){
//Code for recreate
recreate();

}else{
//Code for Intent
Intent intent = getIntent();
finish();
startActivity(intent);
}

Ответ 2

this.recreate() - это все, что требуется. Придерживайтесь этого кода внутри метода, который живет в активности, которую вы хотите перезагрузить. У меня есть проект, где это привязано к нажатию кнопки, но вы можете использовать его, но вам нужно.

Ответ 3

Я немного смущен вашим вопросом, вы сами ответили на вопрос в своем ответе. Вызовите метод воссоздать напрямую...

Из документации для recreate():

Объяснить эту активность для нового экземпляра. Это приводит, по существу, к тому же потоку, что и при создании Activity из-за изменения конфигурации - текущий экземпляр перейдет через свой жизненный цикл в onDestroy(), а затем после него создаст новый экземпляр.

Вызвать recreate() из кода действия вместо

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

чтобы перезапустить активность (после API 11).

См. этот ответ для более общей процедуры повторного создания, которая работает даже до API/SDK 11.