recherche

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

android - 我能否实现一个不需主动传入上下文的dialog?

既然我可以通过注册activity生命周期回调的方法在任意地方获取到最后一个onresume的activity,
那么我是否可以创建一个工具类,工具类利用这个activity来构造dialog呢?
这样做有什么坏处呢?
我现在用一个toast工具类,在工具类中直接使用了application的context,这样做可以吗?

阿神阿神2771 Il y a quelques jours600

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

  • 巴扎黑

    巴扎黑2017-04-18 09:18:44

    Oui, vous pouvez, mais pourquoi ? Encapsulez simplement une classe d’outil de dialogue et transmettez l’activité. Quant au toast, utiliser applicationContext est une bonne idée.

    répondre
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:18:44

    Construisez le dialogue et transmettez-lui directement le contexte d'activité. Vous n'avez pas besoin de vous soucier des rappels ou quelque chose comme ça. Vous pouvez vous référer aux bibliothèques d'outils packagées d'autres personnes pour voir les idées d'autres personnes.

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-18 09:18:44

    Soyez simplement intelligent, vous pouvez utiliser une activité comme dialogue, définissez simplement son thème sur dialogue, comme le dit le site officiel

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-18 09:18:44

    À l'origine, la boîte de dialogue au niveau du système est très pratique. Il vous suffit de passer le contexte d'application pour implémenter une boîte de dialogue contextuelle. Cependant, en raison d'une personnalisation excessive par divers fabricants (j'ai rencontré la personnalisation dégoûtante de Xiaomi au niveau du système). -up, la même version, modifiez-la une fois mise à jour), il est donc préférable d'utiliser une activité dans un format de dialogue personnalisé comme boîte contextuelle pour implémenter tout ce qui précède. Actuellement, de nombreuses entreprises le font, comme par exemple. La poussée du pigeon voyageur de Tencent, c'est ainsi que cela se fait. Cela peut garantir une ouverture réussie sans la douleur de la personnalisation.

    répondre
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:18:44

    Pour Android Dialog, vous devez transmettre le contexte quoi qu'il arrive. Passer une activité équivaut en fait à passer un contexte. Il n'est pas possible d'utiliser le Contexte de l'Application ; de plus, le Contexte statique n'est pas recommandé et peut provoquer des fuites de mémoire.

    Cependant, vous pouvez masquer ou simplifier ce processus grâce à des méthodes telles que l'injection de dépendances.

    répondre
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:18:44

    Vous ne pouvez pas (même si je tiens à dire que je ne le recommande pas)
    En construisant, vous l'avez déjà implémenté, devinons ce qui va se passer.

    1. La requête réseau a été envoyée, puis la page a été fermée, mais la requête n'a pas été annulée. Lorsque la requête est revenue, une boîte de dialogue est apparue. Comment expliquer cette boîte de dialogue s'il y a des opérations ultérieures dans cette boîte de dialogue ? Dialog, et les opérations ont des données, celles-ci sont traitées Où dois-je mettre le code ? Vous pouvez réussir à mettre ces données dans l'instance Dialog et créer une nouvelle classe interne Félicitations, la mémoire de l'activité qui vient de se terminer a fui <🎜. >

    2. Comment empêcher les gens d'utiliser un dialogue universel ? Il peut être joué n'importe où et la structure du code peut être conservée ?

    3. Pour les petits projets, vous pouvez créer directement une BaseActivity selon vos besoins, gérer la structure du code et faire apparaître une boîte de dialogue sans trop de problèmes.

    4. répondre
      0
  • Annulerrépondre