app的Activity分为两类A和B,共两个入口,app会定期接收网络消息,根据接收到的消息切换界面。
可能在A的页面时需要切换到B的入口,在B的页面时需要切换到A的入口。应该怎么实现?包括界面切换和activity的销毁。
我目前的想法让两类Activity分别继承不同的BaseActivity,然后在Application中保存网络消息的状态,同时保存当前显示的Activity的引用,状态改变的时候根据当前Activity的类型判断是否要做界面切换。
但具体怎么控制Activity的销毁,我不是很清楚。
我的想法是保存当前所有创建了的Activity,在切换页面后,只保留切换后的Activity,销毁其余Activity。
這個問題得到了比較好的解決方法,所有Activity以standard模式啟動,這樣所有Activity都會在一個task中,還要用弱引用保存當前Activity,然後在切換到新的Activity時,調用當前Activity的finishAffinity方法,會結束目前運行的所有Activity,再新開Activity,切換Activity的程式碼最好寫在Application中。關於Activity的afficity可以看這篇文章http://www.androidchina.net/2...
不太明白你的需求,是想透過服務端控制Activity的啟動與結束嗎?
你寫一個baseActivity就行了,例如你現在有兩類activity,你可以在baseActivity中寫一個boolean的一個abstract方法,如果回傳true,則認為是a類activity,false就是b類activity,然後你在寫一個activity管理類,然後封裝到baseActivity中,每啟動一個activity就會加入到一個list集合中,並保存類型。然後在你想要切換類型的時候,你可以直接啟動另外類型的activity,你想要銷毀以前的就直接通過activity管理類,來將棧中的另外類型的activity刪除就好了。