请问如何结束后台指定的Activity ??比如有三个Activity,启动顺序A --> B --> C,
C启动,A和B还在后台没有finish,这时我可以实现结束C的同时B也结束,返回A吗?(注意我这样设计是有我的用意,没办法,确实要这样设计,请不要答非所问,也不要反问我为什么不怎么怎么设计)谢谢!
【Android开发】请问如何结束后台指定的Activity ??
答案:4 悬赏:0 手机版
解决时间 2021-02-18 09:48
- 提问者网友:欲望失宠
- 2021-02-17 21:47
最佳答案
- 五星知识达人网友:慢性怪人
- 2021-02-17 22:02
方法一 写一个baseActivity 有一个静态list<activitiy> mlist
在oncreate 中 维护一个 添加 activity 的方法 mList.add()。
在ondestory 中 mList.remove();
要结束 哪一个 activity 就在mlist 查出来 finish();
方法二
采用广播模式,在activity 中注册广播 ,接收到 结束广播 就结束actvity
在oncreate 中 维护一个 添加 activity 的方法 mList.add()。
在ondestory 中 mList.remove();
要结束 哪一个 activity 就在mlist 查出来 finish();
方法二
采用广播模式,在activity 中注册广播 ,接收到 结束广播 就结束actvity
全部回答
- 1楼网友:傲气稳了全场
- 2021-02-17 23:06
c finish 后 b的 onresume方法 里 finish b
- 2楼网友:刀戟声无边
- 2021-02-17 22:40
我觉得从B到C时用startActivityForResult,在C finish前打上setResult,B 的onActivityResult中finish。这种方案最好
另外一种貌似也简单,在B startActivity C后,B finish掉自己,这样B就不会存到栈中了,从而C finish时会直接回到A
- 3楼网友:酒者煙囻
- 2021-02-17 22:22
如果只是A-->B-->C的话,用一楼的方法确实没问题,相当于添加一个特殊的按钮事件,按钮事件的处理内容是:结束B和C,C可以直接finish,至于B可以用setResult方法告诉B也要finish。如果是
A-->B-->.........-->C的话可能要多次处理setResult和onActivityResult方法,此时可以在按钮事件中启动A,只不过要在启动的时候为intent添加一个参数intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);这样就会结束B和C返回A,因为这些操作是在按钮的事件中进行的所以按返回键的固有操作是不影响的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯