何时需要扩展Application类?

时间:2013-11-10 12:17:48

标签: android

我看到几个地方,人们建议在他们的应用中扩展Application课程。 就个人而言,我从来没有必要这样做。

我无法通过谷歌搜索找到明确的答案和直接答案,所以这里有一些问题:

  • 什么是application课程?
  • 为什么我们需要它?
  • 是单身吗?或者我们可以有多个实例?
  • 当我们在清单中使用它时,它是否与使用eclipse生成的默认应用程序相同?
  • 何时可能需要扩展它?当它是一个开销?
  • 是否对缓存有用?

2 个答案:

答案 0 :(得分:5)

当我第一次开始使用Android进行开发时,我也想到了这一点,但从未想出答案。不过只是快速谷歌自己revealed this website

基本上我认为,如果您正在制作一个涉及多个Activity类的更复杂的Android应用程序,那么如果您需要保留要在应用程序的各个Activity类之间共享的数据,则事情变得困难。 。引自上述网站:

  

如果您查看API参考指南中的Application类(请参阅此处),您将获得有关如何管理全局应用程序数据的建议。它说,Application类是“需要维护全局应用程序状态的人的基类”。

如果您刚刚开始进行Android开发,那么这一点可能并不明显,但是一旦您使用SDK一段时间后,您想出了一个想要以严肃的方式开发的想法可能会遇到这个问题,然后Application类的原因将变得清晰。

答案 1 :(得分:1)

在Android文档中,有很好的解释是Applications.class是什么。

  

需要维护全局应用程序状态的基类。您可以通过在AndroidManifest.xml的标记中指定其名称来提供自己的实现,这将导致在创建应用程序/包的过程时为您实例化该类。

     

通常不需要子类Application。在大多数情况下,静态单例可以以更模块化的方式提供相同的功能。如果你的单例需要一个全局上下文(例如注册广播接收器),那么检索它的函数可以给一个Context,它在第一次构造单例时在内部使用Context.getApplicationContext()。

有时您可能需要对其进行扩展才能使用外部库。我确实将它用于UrbanAirship see here

Application实例确实适用于我们的app,它是在我们的应用程序启动时创建的,并在关闭时删除。它代表了应用程序的一般状态。