【问题标题】:Android-What 's the Disadvantage of using static UI objectAndroid-使用静态UI对象的缺点是什么
【发布时间】:2016-10-10 12:53:29
【问题描述】:

在我的项目中,我需要在两个独立类或两个活动之间使用一些 UI 对象(例如 Textview);

在这种情况下,为了避免重复获取 UI 对象的代码,我想使用静态 Ui 对象来代替。 当然,我也在考虑静态对象在App生命周期中的安全性; 不过android-static-object-lifecycle的文章解开了我的疑惑;

当您切换到另一个应用程序的不同活动时,静态变量的值将保持不变,并且以下三种都不会发生。

1.类已卸载

2。 JVM 关闭

3.进程终止

在我看来,使用静态对象不仅安全,而且在不同的类中使用更有说服力;但实际上在其他项目中很少见到。 使用静态 ui 对象有什么缺点吗?

请发表您对此的建议...在此先感谢

【问题讨论】:

  • 避免重复获取 UI 对象的代码 ?只需将 textview 实例传递给需要它的类。如果另一个类也是一个活动,它不需要这个文本视图,因为它不是他的
  • 你是对的,pass实例可以处理这个。但是当有很多ui实例需要pass时,我怎样才能更容易编码呢?

标签: android static


【解决方案1】:

每个 UI 元素都需要一个 context。当您提供this(例如thisActivity 子类)时,该元素将包含对您的活动的引用。这很糟糕,因为运行时可能会重新创建活动实例(例如,当屏幕旋转时)。在这些情况下,旧实例仍将保留在内存中(因为它不能被垃圾回收),因为您的 UI 元素有它的引用(通过this)。因此,建议不要使用static UI 元素。

【讨论】:

  • 谢谢你的解释。现在我知道它不能在其他活动类中工作。但是在线程中使用怎么样(例如我有一个 mapview instacne,我需要通过一个线程更新) ??
  • @tao.weng MapViews 很重,我建议不要将它们设为静态。您应该研究与线程通信的其他方式(例如接口)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-23
  • 2011-05-31
  • 1970-01-01
  • 2017-08-13
  • 2010-11-22
  • 2011-06-30
相关资源
最近更新 更多