Android 如何保存活动的完整实例,从而防止每次启动时重新加载?
我的Android应用程序本质上是将网站转换为移动应用程序。设计如下:Android 如何保存活动的完整实例,从而防止每次启动时重新加载?,android,android-activity,navigation,instance,drawer,Android,Android Activity,Navigation,Instance,Drawer,我的Android应用程序本质上是将网站转换为移动应用程序。设计如下: 导航抽屉,根据网站包含不同类别的帖子 每个选项都是不同的活动。我设计了一个BaseActivity(带有导航抽屉初始化),其他活动从中扩展,因此每个活动都有导航抽屉。(我不使用片段) 每个活动都会调用JSON解析器从网站加载帖子,因此最多需要5秒钟的时间来加载 问题在于,一旦打开活动/屏幕,在下次调用时不会保留在内存中 例如:主屏幕-->类别1屏幕-->主屏幕导致主屏幕加载第二次,因此额外占用5秒 如何在内存中保留至少3
- 导航抽屉,根据网站包含不同类别的帖子
- 每个选项都是不同的活动。我设计了一个BaseActivity(带有导航抽屉初始化),其他活动从中扩展,因此每个活动都有导航抽屉。(我不使用片段)
- 每个活动都会调用JSON解析器从网站加载帖子,因此最多需要5秒钟的时间来加载
意图
,例如标志\u活动\u清除\u顶部
。除其他外,这将使现有的“主屏幕”实例回到前台,而不是创建一个新实例
如何在内存中保留至少3个活动的完整(或至少部分)实例以避免这种麻烦
你的问题不在于它们是否在内存中。如果用户以前访问过它们,则它们已在内存中。但是,如果清单中的Intent
上没有标志或属性来帮助控制事件,则每个startActivity()
调用都会创建活动的新实例
因此,首先,您需要决定应用程序的导航流程是什么,特别是后退按钮,以决定哪些现有活动实例可以重用
其次,您需要一种更有效的缓存策略,而不仅仅是将内容存储在单个活动中。这样,即使您最终创建了新的活动实例(以保持后退按钮按您希望的方式运行),这些活动也可以从缓存中检索数据,而不必从网站重新加载数据。非常感谢。我不知道旗帜,也不知道它们有多有用。这打开了很多,哈哈。万一有人想知道,我用了“FLAG\u ACTIVITY\u REORDER\u TO\u FRONT”标志。