【问题标题】:android xml design cacheandroid xml设计缓存
【发布时间】:2015-05-27 00:31:59
【问题描述】:

是否可以在 android 中缓存 xml 设计?基本上我想要的是第一次加载活动时,它会从 SQLite 数据库加载一些数据,然后将其显示在列表视图上。当我再次查看活动时,列表视图上显示的数据不会再次从 SQLite 加载,而是从 xml 设计的缓存中加载,更像是活动的快照。我想要这个以获得更快的性能。有人可以帮帮我吗?

【问题讨论】:

    标签: android xml sqlite caching


    【解决方案1】:

    比方说,您想在销毁父活动期间缓存从 db 填充的整个膨胀列表视图,以便在下一次您不需要再次获取数据,即您希望重用以前膨胀的列表视图?

    如果这是问题所在,不,这是不可能的,即使通过一些骗子或骗子可以做到,你也不能这样做。由于膨胀视图与上下文高度耦合,因此您尝试以上述方式重用膨胀视图,那么之前损坏的不存在的上下文可能会给您一个致命的异常。

    【讨论】:

    • 您好!非常感谢您回答并分享您对此的看法。我明白你的意思。但是,如果从 SQLite 数据库填充的膨胀列表视图不会破坏活动怎么办?我的意思是仅用于查看目的?例如,在第一个活动上包含一个按钮,该按钮将转到第二个活动以查看列表视图。然后当我第二次回到第二个活动时,它会自动膨胀到列表视图,而不需要 SQLite。 sharedprefences、onresume、onpause、onsavedinstancestate 是一个选项吗?
    • 在您的想象中,第一次,当您从第二个活动返回到第一个活动时,将在从第二个活动到第一个活动之间发生活动切换,并且您的第二个活动将被销毁。下次您再次进行第二个活动时,它基本上又是一个新的活动实例(活动上下文不同)。我希望你明白我的意思。现在,当您使用 sqlite 时,我假设您的数据足够大。所以在这种情况下,共享偏好不是一种选择。而 onPause()、onResume() 只是活动状态。他们只提供合适的时间窗口。
    • 最后一次您好先生,如果您能给我一些建议,对于这样的场景,您会怎么做才能获得更快的性能?我的意思是还有其他方法可以完成这项任务吗?
    • 我对你的情况最好的猜测是,我会将获取的数据保存在另一个类的公共静态变量中(比如说 CacheStorage.DB_DATA_LIST),并且在填充列表视图时,我会检查如果已经存在,则首先使用该静态变量。如果没有,那么我将从数据库中获取并存储在公共静态变量中。这种方法通常被描述为在内存中加载一次并在下一次垃圾内存收集之前重复使用。
    • 很棒的方法。感谢您分享您的想法先生。 :)
    猜你喜欢
    • 2011-01-31
    • 2015-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    • 2010-09-24
    相关资源
    最近更新 更多