我打开一个Activity列出一堆搜索结果之后按了退出键退出了,有没有办法我再打开这个Activity的时候别重新搜索,就打开刚刚退出的界面,别把onCreate重新执行一遍?
就是从这个Activity跳转到别的Activity,然后回来的效果那样
或者推出了就destroy了,没救了?
PHPz2017-04-17 17:44:27
按退出鍵退出Activity必定使得Activity執行onDestroy()
方法的, 所以再進來一定會重新onCreate()
onDestroy()
方法的, 所以再进来肯定会重新onCreate()
想保留搜索结果我能想到2个方法
保存搜索的结果. 保存的方法比较多, 例如持久化搜索结果, 或者保存到一个静态对象里面, 或者把结果回传给启动它的Activity, 重新启动的时候再传回给它.
直接用Fragment显示搜索结果内容视图. 用Fragment点返回键时用hide()
方法, 那么这个Fragment的实例就不会被回收, 重新进入搜索结果页面的时候再把这个show()
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。 。 。
嘛。 。 。簡單來說就是這樣