recherche

Maison  >  Questions et réponses  >  le corps du texte

android - 如何避免activity再次启动时又一次初始化数据

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


初始化数据是在onCreate()

PHP中文网PHP中文网2887 Il y a quelques jours1304

répondre à tous(13)je répondrai

  • 迷茫

    迷茫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.

    répondre
    0
  • 高洛峰

    高洛峰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

    répondre
    0
  • 黄舟

    黄舟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,

    .

    répondre
    0
  • PHPz

    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.

    répondre
    0
  • 阿神

    阿神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.

    répondre
    0
  • 天蓬老师

    天蓬老师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

    répondre
    0
  • 大家讲道理

    大家讲道理2017-04-17 17:36:18

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

    répondre
    0
  • PHP中文网

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

    répondre
    0
  • 黄舟

    黄舟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

    répondre
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:36:18

    onSavedInstance()
    onRestoreInstance()

    répondre
    0
  • Annulerrépondre