¿Es una buena práctica volver a cargar un Activity
en Android ?
¿Cuál sería la mejor manera de hacerlo? this.finish
y luego this.startActivity
con la actividad Intent
?
android
android-activity
hpique
fuente
fuente
Respuestas:
Simplemente puedes usar
para refrescar un
Activity
desde dentro de sí mismo.fuente
para aquellos que no quieren ver ese parpadeo después del método recreate () simplemente use
fuente
Esto es lo que hago para volver a cargar la actividad después de cambiar el regreso de un cambio de preferencia.
Esto esencialmente hace que la actividad se vuelva a dibujar.
Actualizado: Una mejor manera de hacer esto es llamar al
recreate()
método. Esto hará que la actividad sea recreada.fuente
Vi respuestas anteriores que se han dado para recargar la actividad usando Intent. Esos funcionarán, pero también puede hacer lo mismo usando el método recreate () dado en la clase Activity en sí.
En lugar de escribir esto
// Actualizar la actividad principal al cerrar el cuadro de diálogo
Esto se puede hacer escribiendo esto solamente
fuente
recreate()
fue la solución para mí: "reiniciar" la actividad no funcionó para mí, ya que comencé la actividad usando "StartActivityForResult" y rompió el comportamiento.simplemente use
esto activará el método onCreate en la actividad
fuente
Necesitaba actualizar una lista de mensajes en una de mis aplicaciones a toda prisa, así que simplemente realicé una actualización de mi actividad principal de la interfaz de usuario antes de cerrar el diálogo en el que estaba. Estoy seguro de que también hay mejores maneras de lograr esto.
fuente
Android incluye un sistema de gestión de procesos que maneja la creación y destrucción de actividades que niega en gran medida cualquier beneficio que pueda ver al reiniciar manualmente una actividad. Puede ver más información al respecto en Fundamentos de la aplicación
Sin embargo, lo que es una buena práctica es asegurarse de que sus métodos onPause y onStop liberen todos los recursos que no necesita conservar y utilizar onLowMemory para reducir sus necesidades de actividades al mínimo absoluto.
fuente
Comience con una intención igual
activity
y cierre elactivity
.fuente
en algunos casos es la mejor práctica en otros, no es una buena idea que esté basada en el contexto si elige hacerlo, usar la siguiente es la mejor manera de pasar una actividad a sus hijos:
la cosa es que cuando terminas () de la actividad IWishToRun vuelves a tu actividad vital
fuente
Recargar toda su actividad puede ser una tarea pesada. Simplemente ponga la parte del código que debe actualizarse ( kotlin ):
Java:
Y llame a " onResume () " cuando sea necesario.
fuente
No creo que sea una buena idea ... sería mejor implementar un método más limpio. Por ejemplo, si su actividad contiene un formulario, el método más limpio podría borrar cada widget en el formulario y eliminar todos los datos temporales. Supongo que eso es lo que quieres: restaurar la actividad a su estado inicial.
fuente
Después de experimentar con esto por un tiempo, no he encontrado consecuencias inesperadas de reiniciar una actividad. Además, creo que esto es muy similar a lo que Android hace de forma predeterminada cuando cambia la orientación, por lo que no veo una razón para no hacerlo en una circunstancia similar.
fuente
yo tengo el mismo problema
Este código funciona para mí. Android api 17
fuente
En una actividad puede llamar
recreate()
para "recrear" la actividad (API 11+)fuente
Tuve otro enfoque como: establecer la
launchMode
actividad de misingleTop
y sin llamarfinish()
, simplementestartActivity(getIntent())
hará el trabajo. Solo hay que preocuparse por los nuevos datos tanto enonCreate()
comoonNewIntent
. Con el estilo de Sush, la aplicación puede parpadear como dijo AMAN SINGH. Pero el enfoque de AMAN SINGH seguirá creando una nueva actividad que de alguna manera es innecesaria, incluso si soluciona el problema del "parpadeo", creo.Demasiado tarde para esta pregunta, pero si alguien busca una solución, aquí está.
fuente
Después de iniciar sesión tuve el mismo problema, así que usé
fuente
Utilicé esto y funciona bien sin
finish()
fuente
para mí está funcionando, no está creando otras intenciones y en la misma se cargaron las nuevas intenciones.
fuente