android打开activity问题?
PHP中文网
PHP中文网 2017-04-17 17:42:27
[Android讨论组]

我打开一个Activity列出一堆搜索结果之后按了退出键退出了,有没有办法我再打开这个Activity的时候别重新搜索,就打开刚刚退出的界面,别把onCreate重新执行一遍?

就是从这个Activity跳转到别的Activity,然后回来的效果那样

或者推出了就destroy了,没救了?

PHP中文网
PHP中文网

认证0级讲师

全部回复(3)
PHPz

按退出键退出Activity必定使得Activity执行onDestroy()方法的, 所以再进来肯定会重新onCreate()

想保留搜索结果我能想到2个方法

  1. 保存搜索的结果. 保存的方法比较多, 例如持久化搜索结果, 或者保存到一个静态对象里面, 或者把结果回传给启动它的Activity, 重新启动的时候再传回给它.

  2. 直接用Fragment显示搜索结果内容视图. 用Fragment点返回键时用hide()方法, 那么这个Fragment的实例就不会被回收, 重新进入搜索结果页面的时候再把这个show()出来就可以了, 不过这个方法对页面的跳转逻辑有要求.

具体还是要看这个搜索结果页面跟其他页面的关系来定使用哪种方法

伊谢尔伦

我觉得可以将显示搜索结果的Activity的launchMode设置为singleTask,然后重写该Activity的onNewIntent方法,不过系统在内存吃紧的时候还是会随时杀掉Activity,你要是想每次打开都显示上一次的搜索结果,可以考虑把搜索关键词保存在数据库,然后每次打开用上一次的搜索关键词请求数据

PHP中文网

在退出Activity之前,把搜索到的数据保存到Bundle里面,再使用onCreate中的Bundle参数(里面有你之前保存的数据)来重新建立View。。。
嘛。。。简单来说就是这样

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号