Maison > Questions et réponses > le corps du texte
本人写了一个activity初始化了一些数据,而在另一个activity改变数据后返回时,发现数据又再一次被初始化,有什么办法可以改变这种情况吗?
初始化数据是在onCreate()
迷茫2017-04-17 17:36:18
Mettez l'opération de données d'initialisation dans la méthode onCreate. Vous pouvez la mettre dans onResume.
高洛峰2017-04-17 17:36:18
Il est recommandé de se renseigner sur le contenu d'Activity Lifecycle dans le didacticiel officiel Android.
L'URL est https://developer.android.com...
Solution :
Mettez l'opération d'initialisation dans la méthode OnCreate()
de Activity au lieu de la méthode OnResume()
ou OnStart()
.
Vous pouvez également définir l'identifiant de la variable globale statique sur 0, le définir sur 1 après l'initialisation et déterminer si la variable est 0 avant l'initialisation. Cependant, ce n'est pas la bonne façon de comprendre LifeCycle pour résoudre ce problème. problème.
Ci-joint une photo du cycle de vie
黄舟2017-04-17 17:36:18
Le premier phénomène est que les données ont été à nouveau initialisées, donc la solution est la suivante :
1. Pensez à la raison pour laquelle les données ont été à nouveau initialisées. Comme mentionné ci-dessus, vous les avez peut-être initialisées dans OnResume(). , méthode OnStart().
2,produire La raison du problème est que les données sont initialisées plusieurs fois, vous pouvez donc ajouter la fonction de plusieurs appels à l'initialisation des données et utiliser des idées orientées objet pour encapsuler les données d'initialisation, ce qui ressemble un peu au modèle à intérêt unique. . L'avantage est que cela résout la possibilité d'exécutions multiples,
PHPz2017-04-17 17:36:18
Si à chaque fois votre Activity
est destroy
, alors vous ne pourrez pas obtenir le résultat souhaité en mettant le programme d'initialisation dans onCreate
. Vous feriez donc mieux de vérifier log
d’abord et de jeter un œil à votre Activity
cycle de vie.
阿神2017-04-17 17:36:18
Chaque fois que vous entrez dans la page, déterminez si les données existent déjà. Si elles existent déjà, utilisez le cache et ne demandez pas au réseau de charger les données.
天蓬老师2017-04-17 17:36:18
En le connectant et en le combinant avec la fonction de cycle de vie Android, le problème est fondamentalement résolu
大家讲道理2017-04-17 17:36:18
Cela signifie que votre activité a été interrompue, réfléchissez à la raison
PHP中文网2017-04-17 17:36:18
Habituellement, onCreate sera appelé à nouveau seulement après la destruction de l'activité. Vérifiez le mode de démarrage de l'activité actuelle et le mode de démarrage d'une autre activité.
黄舟2017-04-17 17:36:18
Vous pouvez considérer le mode de démarrage de votre activité. Il existe 4 modes de démarrage, il y en a toujours un qui vous convient