android - 如何避免activity再次启动时又一次初始化数据
PHP中文网
PHP中文网 2017-04-17 17:34:18
0
13
1264

本人写了一个activity初始化了一些数据,而在另一个activity改变数据后返回时,发现数据又再一次被初始化,有什么办法可以改变这种情况吗?


初始化数据是在onCreate()

PHP中文网
PHP中文网

认证0级讲师

répondre à tous(13)
迷茫

Mettez l'opération de données d'initialisation dans la méthode onCreate. Vous pouvez la mettre dans onResume.

小葫芦

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

黄舟

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,

.
PHPzhong

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.

阿神

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.

Peter_Zhu

En le connectant et en le combinant avec la fonction de cycle de vie Android, le problème est fondamentalement résolu

大家讲道理

Cela signifie que votre activité a été interrompue, réfléchissez à la raison

Ty80

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é.

黄舟

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

巴扎黑

onSavedInstance()
onRestoreInstance()

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal