【问题标题】:Is it acceptable practice to use Singleton Objects to save state or share data between Activities?使用单例对象在活动之间保存状态或共享数据是否可以接受?
【发布时间】:2011-03-29 20:16:03
【问题描述】:

如果 StackOverflow 有一个部分,我们可以发布像我这样的教程,这样我就可以一口气回答数百个在这里提出的问题。看...每天我都会阅读有关如何在 Activity 之间传递复杂对象、如何保存状态以便您的应用可以在方向更改后恢复、如何在数据更改时更新列表视图等问题。

这是我在博客上发布的教程系列的第二部分...我希望您真正阅读它...因为我在任何地方都没有看到任何类似的示例...它改变了我的方式考虑全面地为 Android 开发。问题是……这样发展有负面影响吗?

Beyond Smart Lists – How Observable Singletons change the game.

请仔细阅读这两个教程...我会在这里回答任何有关它的问题...我真的很想知道您对此有何看法以及它是否可以为您解决问题。

版主注意:我的博客上没有任何类型的广告。所以不要因为您认为我在以某种方式发送垃圾邮件就关闭它...我不会复制我的在这里发帖。而且...我真的很想知道这种方法是否存在缺陷。

【问题讨论】:

  • 我认为它被标记是因为您的主题是“你们中有多少人......”这听起来很主观。如果你的 subect 读起来更像“使用单例来保存状态或在活动之间共享数据是公认的做法吗?”,可能会更好地通过气味测试?
  • 谢谢...问题已更改。竖起大拇指!
  • 你的“SmartList”有一个公共的构造函数,所以它不是一个真正的单例。这是一个错误吗?
  • 如果您的教程回答了数百个实际被问到的问题,那么确定它们是哪些问题并将您的教程作为答案发布是有意义的。
  • 我不愿意在不完全理解您的代码的情况下提供“答案”,但我会在 cmets 中提供一些反馈。您的示例记录非常糟糕 - 即几乎没有记录。这使得它们不适合作为教程。

标签: android singleton observable


【解决方案1】:

你读过 Android 的 Application 类吗?

【讨论】:

  • 是的,我确实有。在heikkitoivonen.net/blog/2010/05/13/… 有一个关于如何使用它的很棒的教程,但它并不是真正相同的方法......它是否灵活?此外,这些 Observable 对象的工作方式是,它们会在其属性发生变化时向任何消费 Activity 发布更新……然而,这确实带来了一个我没有考虑过的重要问题。如果 Observer 不再处于活动状态会发生什么...我不确定如果 Observable 尝试更新不存在的 Observer 是否会抛出异常。
  • 好的...我刚刚运行了一个测试,似乎更新空观察者的尝试不会引起任何副作用,但在 onDestroy( ) 和 onPause() 并在 onResume() 或 onRestoreInstanceState() 中恢复对象和观察者
  • 观察者模式的基础是观察者在不再需要时从它所观察的一切中移除自己。在垃圾收集环境中,只要 Observables 中有对 Observer 的引用,Observer 就仍然存在。当你的观察者变得不活跃时,他们应该从他们所有的 Observables 中移除自己。
  • 是的......我实际上一直在这样做,因为我确实看到它正在泄漏内存,而我没有这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-13
相关资源
最近更新 更多