Как сделать рестарт активити?

235
18 октября 2017, 04:47

Добрый день.В приложении есть метод который делает много чего.и после этого надо убить Активити и сново его перезапустить.Пробовал через интент вот так

İntent intent  = new Intent(...)
startActivity(..)
finish

но оно не работает . Какие есть методы "перезагрузки " Activity

Answer 1
public class MainActivity extends AppCompatActivity {
    private Activity mActivity;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mActivity = MainActivity.this;
        Button button = (Button) findViewById(R.id.restart_button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                restartActivity(mActivity);
            }
        });
    }
}
public static void restartActivity(Activity activity) {
        if (Build.VERSION.SDK_INT >= 11) {
            activity.recreate();
        } else {
            activity.finish();
            activity.startActivity(activity.getIntent());
        }
}
Answer 2

Для пересоздания активити на API level 11+ можно вызвать метод recreate(), на меньших API levels это можно сделать вручную:

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

Итого:

if (android.os.Build.VERSION.SDK_INT >= 11){
    recreate();
} else {
    Intent intent = getIntent();
    finish();
    startActivity(intent);
}
READ ALSO
Поддержка MIME type application/stream+json в Angular2

Поддержка MIME type application/stream+json в Angular2

С выходом новой версии Spring 5 появился модуль WebFlux(реактивный подход)В документации в пункте 23

245
Фейл ajax запроса в контроллере

Фейл ajax запроса в контроллере

Как сделать fail ajax запроса в контроллере,чтобы после обработать его по параметру OnFailure?

196
Проблема обновления ссылки на службу

Проблема обновления ссылки на службу

После обновлении ссылки на службу, все используемые классы через ссылку становятся не доступнымиРаз 30 уже попытался обновить ничего не получатся

219