【问题标题】:Another application launched from my app uses the same heap从我的应用程序启动的另一个应用程序使用相同的堆
【发布时间】:2015-01-21 11:54:59
【问题描述】:

我正在启动一个应用程序,例如:我的应用程序中的 Box 应用程序。在启动盒子应用程序时。我的应用程序进入后台,当我回到我的应用程序时,由于内存问题,所有静态对象(如数据库实例和静态模型)都被重置。 我应该如何处理。我知道可以使用 onsaveinstancestate。但在我的情况下,我必须保留许多静态模型和数据库实例等。我认为不应该在 onsaveinstancestate 中保存。 我注意到的另一件事是盒子应用程序使用相同的堆来创建对象,并且分配的堆和空闲内存发生了变化。为什么会这样?它在不同的进程中运行。

【问题讨论】:

标签: android performance memory static-members android-lifecycle


【解决方案1】:

新堆:https://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NEW_TASK

数据库和静态实例:

你无能为力。每当系统需要内存时,它就会回收内存。您必须学习如何正确处理数据库连接、单例和活动生命周期。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多