android开发技术心得分享——同时退出多个activity的实现方法

android的多个activity是用栈来管理的,有时候,需要在退出栈顶的activity的同时,退出其下的一个或多个activity,以最近做的网上找书和下载功能:

从书籍列表(activity——bookList)点击某本书,进入查看书籍信息的activity——bookInfo,在bookInfo页退出,则需要把bookList也finish掉。

几种思考:

1  bookList中进入bookInfo(startActivity())之后,马上调用finish()销毁自己。这样activity栈中就没有bookList了,bookInfo页退出时只需要finish就可以退出程序。问题是bookInfo页点击返回,就需要重新create一个bookList,且之前的状态已经没有了。

   所以这不是一个好方法。

2  bookList不finish,在bookInfo页退出时finish掉bookList,但是从一个activity去停止其他的activity不是一个好的习惯,为什么?等我nb了告诉你,现在我只能回答,这样比较难实现。

3(本文要说的东西) bookList页调用startActivity去新建bookInfo的时候,采用startActivityForResult,并在onActivityResult方法(即被start的activity退出时调用的方法,详见api)中通过resultCode标记是否结束当前activity。

   这样,bookInfo关闭时如果需要同时关闭bookList,只需要在关闭时setResult(int resultCode),告诉bookList也需要关闭即可。如果是点击返回,不setResult就可以了,这样bookInfo关闭了,bookList onResume。

你可能感兴趣的:(Android开发)