recherche

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

android - 安卓如何随意控制两种界面的切换?

app的Activity分为两类A和B,共两个入口,app会定期接收网络消息,根据接收到的消息切换界面。
可能在A的页面时需要切换到B的入口,在B的页面时需要切换到A的入口。应该怎么实现?包括界面切换和activity的销毁。

我目前的想法让两类Activity分别继承不同的BaseActivity,然后在Application中保存网络消息的状态,同时保存当前显示的Activity的引用,状态改变的时候根据当前Activity的类型判断是否要做界面切换。
但具体怎么控制Activity的销毁,我不是很清楚。
我的想法是保存当前所有创建了的Activity,在切换页面后,只保留切换后的Activity,销毁其余Activity。

大家讲道理大家讲道理2771 Il y a quelques jours592

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

  • 迷茫

    迷茫2017-04-18 09:20:55

    Ce problème a été mieux résolu. Toutes les activités sont démarrées en mode standard, de sorte que toutes les activités seront dans une seule tâche. L'activité en cours doit être enregistrée avec une référence faible, puis lors du passage à une nouvelle activité, l'activité en cours. L'activité sera appelée. La méthode finishAffinity mettra fin à toutes les activités en cours, puis ouvrira une nouvelle activité. Il est préférable d'écrire le code pour changer d'activité dans Application. Concernant l'afficité d'Activité, vous pouvez lire cet article http://www.androidchina.net/2...

      MyActivityManager.getInstance().getCurrentActivity().finishAffinity();
              context.startActivity(new Intent(context, AdminLoginActivity.class)
                  .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:20:55

    Je ne comprends pas bien vos besoins. Voulez-vous contrôler le début et la fin de l'activité via le serveur ?

    répondre
    0
  • ringa_lee

    ringa_lee2017-04-18 09:20:55

    Il vous suffit d'écrire une baseActivity. Par exemple, si vous avez maintenant deux types d'activités, vous pouvez écrire une méthode abstraite booléenne dans baseActivity. Si elle renvoie true, elle est considérée comme une activité de type A et false est une activité. activité de type B. Ensuite, vous écrivez une classe de gestion d'activité et l'encapsulez dans baseActivity. Chaque fois qu'une activité est démarrée, elle est ajoutée à une collection de listes et le type est enregistré. Ensuite, lorsque vous souhaitez changer de type, vous pouvez démarrer directement un autre type d'activité. Si vous souhaitez détruire le précédent, supprimez simplement l'autre type d'activité dans la pile directement via la classe de gestion des activités.

    répondre
    0
  • Annulerrépondre