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

How to save full instances of Activities and hence prevent reloading for each start?

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

问题是 activities/screens 一旦打开,下次调用时不会留在内存中。

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

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

我确实调用了 super.onCreate(savedInstanceState),但每个 activity 从头开始​​重新启动。

For example: Home Screen --> Category 1 Screen --> Home Screen causes the Home Screen to load a second time and hence takes up an additional 5 seconds.

返回 "Home Screen" activity 时,将适当的标志添加到您的 Intent,例如 FLAG_ACTIVITY_CLEAR__TOP。除其他事项外,这会将现有 "Home Screen" 实例带回前台,而不是创建新实例。

How can I keep the full (or at least partial) instance of at least 3 activities in memory to avoid this nuisance?

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

的新实例

因此,首先,您需要确定应用的导航流程,尤其是在“返回”按钮方面,以确定哪些现有 activity 实例可以重复使用。

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