Intereting Posts
Как я могу использовать системные значки в приложении для Android? Загружать html-файлы из исходной папки в веб-просмотр Как отправить строку с Android на ПК через Wi-Fi Значение по умолчанию для параметра ListPreference не отображается Объединение манифеста Android Gradle: переопределить атрибут «uses-permission», поступающий из библиотеки IllegalStateException – поддержка LoaderManager с помощью AutocompleteTextView Переменная «runnable» должна быть инициализирована Контрольные суммы MD5 файлов Android APK различаются. Зачем? Ошибка «Не удалось запустить службу Intent» при запуске службы из Activity на Android Увеличьте продолжительность непрерывного просмотра зрителя (дубликат) Как закодировать с помощью студии android для отправки электронной почты Как закрыть макет ящика на BackPress в Android? Ant debug и sdk.dir Отладка React Native over adb tcpip В Android, как я плавно увядает фон от одного цвета к другому? (Как использовать потоки)

Перезагрузка на Android

Это хорошая практика для перезагрузки Activity на Android ?

Какой был бы лучший способ сделать это? this.finish а затем this.startActivity с активностью Intent ?

Solutions Collecting From Web of "Перезагрузка на Android"

Вы можете просто использовать

 finish(); startActivity(getIntent()); 

Для обновления Activity изнутри самого себя.

Это то, что я делаю, чтобы изменить активность после изменения возврата из предпочтения.

 @Override protected void onResume() { super.onResume(); this.onCreate(null); } 

Это существенно заставляет деятельность перерисовывать себя.

Обновлено: лучший способ сделать это – вызвать метод recreate (). Это приведет к воссозданию активности.

Мне нужно было быстро обновить список сообщений в одном из моих приложений, поэтому я только что обновил свой основной пользовательский интерфейс до того, как закрыл диалоговое окно, в котором я был. Я уверен, что есть и другие способы сделать это.

 // Refresh main activity upon close of dialog box Intent refresh = new Intent(this, clsMainUIActivity.class); startActivity(refresh); this.finish(); // 

Android включает в себя систему управления процессом, которая обрабатывает создание и уничтожение действий, что в значительной степени отрицает любую выгоду, которую вы увидите при ручном перезапуске деятельности. Вы можете увидеть больше информации об этом в разделе « Основы применения»

Однако хорошая практика заключается в том, чтобы обеспечить, чтобы ваши методы onPause и onStop выпускали любые ресурсы, которые вам не нужно удержать, и использовать onLowMemory для сокращения ваших действий необходимо до абсолютного минимума.

Для тех, кто не хочет видеть, что мигание после метода recreate () просто использует

  finish(); overridePendingTransition(0, 0); startActivity(getIntent()); overridePendingTransition(0, 0); 

Начните с намерения вашей же activity и закройте свою activity .

 Intent refresh = new Intent(this, Main.class); startActivity(refresh);//Start the same Activity finish(); //finish Activity. 

В некоторых случаях это лучшая практика в других, это не очень хорошая идея, это контекст, если вы решили сделать это, используя фалеровку – лучший способ перейти от деятельности к своим сыновьям:

  Intent i = new Intent(myCurrentActivityName.this,activityIWishToRun.class); startActivityForResult(i, GlobalDataStore.STATIC_INTEGER_VALUE); 

Вещь, когда вы заканчиваете () от activityIWishToRun, вы возвращаетесь к своей живой деятельности

У меня такая же проблема

 import android.support.v4.content.IntentCompat; intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |IntentCompat.FLAG_ACTIVITY_CLEAR_TASK); 

Этот код работает для меня. Android api 17

Я не думаю, что это хорошая идея … было бы лучше реализовать более чистый метод. Например, если ваша активность содержит форму, метод clean может просто очистить каждый виджет в форме и удалить все временные данные. Я думаю, это то, что вы хотите: восстановить активность в исходное состояние.

После экспериментов с этим некоторое время я не обнаружил неожиданных последствий перезапуска активности. Кроме того, я считаю, что это очень похоже на то, что Android делает по умолчанию, когда меняется ориентация, поэтому я не вижу причины не делать этого в подобных обстоятельствах.

У меня был другой подход, например: установив launchMode моей активности на singleTop и без вызова finish() , только startActivity(getIntent()) выполнит эту работу. Просто нужно заботиться о новых данных как в onCreate() и onNewIntent . С помощью Sush's приложение может мигать, как сказал AMAN SINGH. Но подход AMAN SINGH по-прежнему будет создавать новую деятельность, которая как-то не нужна, даже если он исправил проблему «мигания», я думаю.

Слишком поздно для этого вопроса, но если кто-то ищет решение, вот оно.