android - 安卓如何随意控制两种界面的切换?
大家讲道理
大家讲道理 2017-04-18 09:18:55
0
3
590

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

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

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

Antworte allen(3)
迷茫

这个问题得到了比较好的解决方法,所有Activity以standard模式启动,这样所有Activity都会在一个task中,还要用弱引用保存当前Activity,然后在切换到新的Activity时,调用当前Activity的finishAffinity方法,会结束当前运行的所有Activity,再新开Activity,切换Activity的代码最好写在Application中。关于Activity的afficity可以看下这篇文章http://www.androidchina.net/2...

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

不太明白你的需求,是想通过服务端控制Activity的启动与结束吗?

左手右手慢动作

你写一个baseActivity就行了,比如你现在有两类activity,你可以在baseActivity中写一个boolean的一个abstract方法,如果返回true,则认为是a类activity,false就是b类activity,然后你在写一个activity管理类,然后封装到baseActivity中,每启动一个activity就添加到一个list集合中,并保存类型。然后在你想要切换类型的时候,你可以直接启动另外类型的activity,你想要销毁以前的就直接通过activity管理类,来将栈中的另外类型的activity删除就好了。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage