Heim > Fragen und Antworten > Hauptteil
我打开一个Activity列出一堆搜索结果之后按了退出键退出了,有没有办法我再打开这个Activity的时候别重新搜索,就打开刚刚退出的界面,别把onCreate重新执行一遍?
就是从这个Activity跳转到别的Activity,然后回来的效果那样
或者推出了就destroy了,没救了?
PHPz2017-04-17 17:44:27
按退出键退出Activity必定使得Activity执行onDestroy()
方法的, 所以再进来肯定会重新onCreate()
想保留搜索结果我能想到2个方法
保存搜索的结果. 保存的方法比较多, 例如持久化搜索结果, 或者保存到一个静态对象里面, 或者把结果回传给启动它的Activity, 重新启动的时候再传回给它.
直接用Fragment显示搜索结果内容视图. 用Fragment点返回键时用hide()
方法, 那么这个Fragment的实例就不会被回收, 重新进入搜索结果页面的时候再把这个show()
出来就可以了, 不过这个方法对页面的跳转逻辑有要求.
具体还是要看这个搜索结果页面跟其他页面的关系来定使用哪种方法
伊谢尔伦2017-04-17 17:44:27
我觉得可以将显示搜索结果的Activity的launchMode设置为singleTask,然后重写该Activity的onNewIntent方法,不过系统在内存吃紧的时候还是会随时杀掉Activity,你要是想每次打开都显示上一次的搜索结果,可以考虑把搜索关键词保存在数据库,然后每次打开用上一次的搜索关键词请求数据
PHP中文网2017-04-17 17:44:27
在退出Activity之前,把搜索到的数据保存到Bundle里面,再使用onCreate中的Bundle参数(里面有你之前保存的数据)来重新建立View。。。
嘛。。。简单来说就是这样