
【Android开发】请问如何结束后台指定的Activity ?? 20
请问如何结束后台指定的Activity??比如有三个Activity,启动顺序A-->B-->C,C启动,A和B还在后台没有finish,这时我可以实现结束C的同时B也结...
请问如何结束后台指定的Activity ??比如有三个Activity,启动顺序A --> B --> C,
C启动,A和B还在后台没有finish,这时我可以实现结束C的同时B也结束,返回A吗?(注意我这样设计是有我的用意,没办法,确实要这样设计,请不要答非所问,也不要反问我为什么不怎么怎么设计)谢谢! 展开
C启动,A和B还在后台没有finish,这时我可以实现结束C的同时B也结束,返回A吗?(注意我这样设计是有我的用意,没办法,确实要这样设计,请不要答非所问,也不要反问我为什么不怎么怎么设计)谢谢! 展开
4个回答
2013-08-15
展开全部
如果只是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,因为这些操作是在按钮的事件中进行的所以按返回键的固有操作是不影响的。
A-->B-->.........-->C的话可能要多次处理setResult和onActivityResult方法,此时可以在按钮事件中启动A,只不过要在启动的时候为intent添加一个参数intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);这样就会结束B和C返回A,因为这些操作是在按钮的事件中进行的所以按返回键的固有操作是不影响的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我觉得从B到C时用startActivityForResult,在C finish前打上setResult,B 的onActivityResult中finish。这种方案最好
另外一种貌似也简单,在B startActivity C后,B finish掉自己,这样B就不会存到栈中了,从而C finish时会直接回到A
另外一种貌似也简单,在B startActivity C后,B finish掉自己,这样B就不会存到栈中了,从而C finish时会直接回到A
更多追问追答
追问
C启动,A和B不能finish,万一用户按返回键怎么办,B不能返回A,C不能返回B了啊,用户按返回键的时候也能C --> B --> A
追答
艾玛,你的追问和你的提问相互冲突啊,你的提问里的“结束C的同时B也结束”意思不是C时用户摁返回键吗?
Ok,也许你的提问是个特殊情况,那就直接用我之前写的方案一好了,特殊情况下用setResult+finish,平常情况无影响。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方法一 写一个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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c finish 后 b的 onresume方法 里 finish b
追问
C启动,A和B不能finish,万一用户按返回键怎么办,B不能返回A,C不能返回B了啊,用户按返回键的时候也能C --> B --> A
追答
可以重写键盘方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询