【问题标题】:Application arraylist clears应用程序数组列表清除
【发布时间】:2011-10-21 04:08:18
【问题描述】:

我有一个有多个屏幕的应用程序。假设 A B C D 和 D 也可能会打开一些外部应用程序。

所有这些活动都共享数据,一个数组列表,我在我的应用程序类中创建了一个对它的引用。 (我创建了一个扩展 Application 的类并引用它清单。)所以所有这些都使用 arraylist 的单个实例。 A 从第一个屏幕开始初始化数组列表,其他人可能会修改它。

问题是当我在模拟器上测试时,没有任何东西被破坏。但是在“某些”手机上,导航 arraylist 的 3 个以上屏幕刚刚从堆中清除。不管体积多么小。

【问题讨论】:

    标签: android share garbage


    【解决方案1】:

    为您的 ArrayList 使用 singleton

    【讨论】:

      【解决方案2】:

      使用单例设计模式或使您的对象静态

      使用单例设计模式,您可以:

      • 确保只创建一个类的一个实例
      • 提供对对象的全局访问点
      • 未来允许多个实例而不影响单例类的客户端

      【讨论】:

      • 我说有 4 个活动和一个应用程序类,我无法共享代码,因为有数千行
      【解决方案3】:

      在您的第一个 Activity 中将 ArrayList 声明为 static,然后在不会分解的任何地方使用它。

      【讨论】:

      • 为什么有人可以解释为什么不赞成投票?
      • 好吧,静态不适合这些场景,对吧?我没有投票给你,但这可能是原因。
      • @Shardul 谢谢,我知道当我们使用静态时,但我也认为它在 android 编程方面的好方法
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-21
      • 2012-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-27
      相关资源
      最近更新 更多