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

android - 实际项目中Activity传递数据最佳实践是?

有个代码优化的问题,假设现在项目有4个Activity依次跳转:A》B》C》D

  1. 有一些公共数据 B,C,D都需要,是用Intent依次传递,还是直接写成public static,或者更好的方法?

  2. 现在D界面进行了一些操作,希望返回到A时(注意:不是D直接跳到A,而是D,C,B回退到A)刷新界面。除了用标志位,更优的方法是?

来,畅所欲言吧

巴扎黑巴扎黑2720 Il y a quelques jours440

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

  • 阿神

    阿神2017-04-18 09:19:15

    Bibliothèque qui utilise le bus d'événements, il est recommandé d'utiliser Eventbus
    Avantages :

    1. La sérialisation des données transmises n'est pas nécessaire

    2. Utilisez le modèle d'observateur pour découpler

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-18 09:19:15

    1. S'il s'agit d'une constante, vous pouvez écrire une classe Constant pour la stocker spécifiquement.
    2. Vous pouvez ouvrir l'activité dans l'ordre via startActivityForResult. Lors du retour, vous pouvez la juger et la transférer dans onActivity en fonction des données de l'Intent, du requestCode et du resultCode, mais le code n'est certainement pas suffisamment rafraîchissant.

    répondre
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:19:15

    Les exigences ne sont pas particulièrement claires. Le scénario est très similaire au scénario de connexion et d'inscription : cliquez sur la page de connexion, oubliez le mot de passe, puis terminez l'opération et revenez directement pour terminer la connexion.

    1. Si BC n'a aucune exigence d'interaction lors du retour et n'a pas d'exigences particulières pour A, alors définissez directement launchMode sur singleInstance ou singleTop (le traitement est différent du premier) combiné avec Activity#onNewIntent(...)Réalisons cela

    2. Si vous avez des exigences d'interaction, revenez simplement niveau par niveau.

    De plus, vous pouvez également utiliser directement la bibliothèque EventBus (EventBus, otto, RxBus sont tous acceptables. Vous pouvez également envisager d'utiliser EventBus dans des scénarios où LocalBroadcastManager), mais vous devez considérer A en cas de blocage Scénario de traitement après recyclage du système.

    p.s. Éliminez simplement le besoin de méthodes globales statiques....

    répondre
    0
  • Annulerrépondre