Android 如何保存活动的完整实例,从而防止每次启动时重新加载?

Android 如何保存活动的完整实例,从而防止每次启动时重新加载?,android,android-activity,navigation,instance,drawer,Android,Android Activity,Navigation,Instance,Drawer,我的Android应用程序本质上是将网站转换为移动应用程序。设计如下: 导航抽屉,根据网站包含不同类别的帖子 每个选项都是不同的活动。我设计了一个BaseActivity(带有导航抽屉初始化),其他活动从中扩展,因此每个活动都有导航抽屉。(我不使用片段) 每个活动都会调用JSON解析器从网站加载帖子,因此最多需要5秒钟的时间来加载 问题在于,一旦打开活动/屏幕,在下次调用时不会保留在内存中 例如:主屏幕-->类别1屏幕-->主屏幕导致主屏幕加载第二次,因此额外占用5秒 如何在内存中保留至少3

我的Android应用程序本质上是将网站转换为移动应用程序。设计如下:

  • 导航抽屉,根据网站包含不同类别的帖子

  • 每个选项都是不同的活动。我设计了一个BaseActivity(带有导航抽屉初始化),其他活动从中扩展,因此每个活动都有导航抽屉。(我不使用片段)

  • 每个活动都会调用JSON解析器从网站加载帖子,因此最多需要5秒钟的时间来加载

问题在于,一旦打开活动/屏幕,在下次调用时不会保留在内存中

例如:主屏幕-->类别1屏幕-->主屏幕导致主屏幕加载第二次,因此额外占用5秒

如何在内存中保留至少3个活动的完整(或至少部分)实例以避免这种麻烦

我确实调用了super.onCreate(savedInstanceState),但每个活动都从一开始就重新启动

例如:主屏幕-->类别1屏幕-->主屏幕导致主屏幕加载第二次,因此额外占用5秒

返回“主屏幕”活动时,将适当的标志添加到您的
意图
,例如
标志\u活动\u清除\u顶部
。除其他外,这将使现有的“主屏幕”实例回到前台,而不是创建一个新实例

如何在内存中保留至少3个活动的完整(或至少部分)实例以避免这种麻烦

你的问题不在于它们是否在内存中。如果用户以前访问过它们,则它们已在内存中。但是,如果清单中的
Intent
上没有标志或属性来帮助控制事件,则每个
startActivity()
调用都会创建活动的新实例

因此,首先,您需要决定应用程序的导航流程是什么,特别是后退按钮,以决定哪些现有活动实例可以重用


其次,您需要一种更有效的缓存策略,而不仅仅是将内容存储在单个活动中。这样,即使您最终创建了新的活动实例(以保持后退按钮按您希望的方式运行),这些活动也可以从缓存中检索数据,而不必从网站重新加载数据。

非常感谢。我不知道旗帜,也不知道它们有多有用。这打开了很多,哈哈。万一有人想知道,我用了“FLAG\u ACTIVITY\u REORDER\u TO\u FRONT”标志。