2

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

我无法通过 google-ing 找到明确直接的答案,所以这里有一些问题:

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

2 回答 2

5

当我第一次开始使用 Android 进行开发时,我也想过这个问题,但从未想出答案。然而,只是一个快速的谷歌自己透露了这个网站

从本质上讲,我认为这归结为这样一个事实,如果您正在制作一个涉及多个 Activity 类的更复杂的 Android 应用程序,那么如果您需要持久化要在应用程序的各个 Activity 类之间共享的数据,事情就会变得困难。引用上述网站:

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

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

于 2013-11-10T12:29:38.130 回答
1

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

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

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

有时您可能需要扩展它以使用外部库。我确实将它用于 UrbanAirship看到这里

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

于 2013-11-10T12:48:07.023 回答