Это хорошая практика для перезагрузки Activity
в Android ?
Каков будет лучший способ сделать это? this.finish
а потом this.startActivity
с активностью Intent
?
android
android-activity
hpique
источник
источник
Ответы:
Вы можете просто использовать
чтобы освежить себя
Activity
изнутри.источник
для тех, кто не хочет видеть этот миг после метода refreshate (), просто используйте
источник
Это то, что я делаю, чтобы перезагрузить действие после изменения, возвращаясь из изменения предпочтений.
Это по существу заставляет деятельность перерисовывать себя.
Обновлено: лучший способ сделать это - вызвать
recreate()
метод. Это приведет к воссозданию активности.источник
Я видел ранее ответы, которые были даны для перезагрузки деятельности с помощью Intent. Они будут работать, но вы также можете сделать то же самое, используя метод refreshate (), указанный в самом классе Activity.
Вместо того, чтобы писать это
// Обновить основное действие после закрытия диалогового окна
Это можно сделать, написав это только
источник
recreate()
было решением для меня - «перезапуск» действия не работал для меня, так как я запустил действие, используя «StartActivityForResult», и это нарушило поведение.просто используйте
это вызовет метод onCreate в действии
источник
Мне нужно было в срочном порядке обновить список сообщений в одном из моих приложений, поэтому я просто выполнил обновление своего основного пользовательского интерфейса, прежде чем закрывать диалоговое окно, в котором я находился. Уверен, есть и лучшие способы сделать это.
источник
Android включает в себя систему управления процессами, которая управляет созданием и уничтожением действий, что в значительной степени сводит на нет любую выгоду, которую вы могли бы получить от ручного перезапуска действий. Вы можете видеть больше информации об этом в Основах Приложения
Тем не менее, хорошей практикой является обеспечение того, чтобы ваши методы onPause и onStop высвобождали любые ресурсы, которые вам не нужны, чтобы использовать их и использовать onLowMemory, чтобы свести к минимуму ваши потребности в деятельности.
источник
Начните с того же намерения
activity
и закройтеactivity
.источник
в некоторых случаях это лучшая практика, в других это не очень хорошая идея, это зависит от контекста, если вы решили сделать это, используя следующее - лучший способ перейти от действия к ее сыновьям:
дело в том, что когда вы заканчиваете () из ActivityIWishToRun, вы возвращаетесь к своему активному действию
источник
Перезагрузка всей вашей деятельности может быть тяжелой задачей. Просто поместите часть кода, которая должна быть обновлена ( kotlin ):
Ява:
И при необходимости вызывайте onResume () .
источник
Я не думаю, что это хорошая идея ... было бы лучше внедрить более чистый метод. Например, если ваша деятельность содержит форму, более чистый метод может просто очистить каждый виджет в форме и удалить все временные данные. Я думаю, это то, что вы хотите: восстановить активность в исходное состояние.
источник
После экспериментов с этим я не обнаружил неожиданных последствий возобновления активности. Кроме того, я считаю, что это очень похоже на то, что Android делает по умолчанию при изменении ориентации, поэтому я не вижу причин, чтобы не делать это в подобных обстоятельствах.
источник
у меня та же проблема
этот код работает для меня. Android api 17
источник
В упражнении вы можете вызвать
recreate()
воссоздание занятия (API 11+)источник
У меня был другой подход, например: настроить
launchMode
свою деятельность наsingleTop
и без звонкаfinish()
, простоstartActivity(getIntent())
сделаю свою работу. Просто нужно позаботиться о новых данных как в, такonCreate()
и вonNewIntent
. Со способом Sush приложение может мигать, как сказал AMAN SINGH. Но подход AMAN SINGH все равно создаст новую деятельность, которая, так или иначе, не нужна, даже если он решил проблему «моргания», я думаю.Слишком поздно для этого вопроса, но если кто-то ищет решение, вот оно.
источник
После входа у меня была такая же проблема, поэтому я использовал
источник
Я использовал это, и он отлично работает без
finish()
источник
для меня это работает, это не создание другого Intents и на тех же Intents новые данные загружаются.
источник