通常没有必要子类应用程序?

时间:2014-08-28 19:37:07

标签: android

根据它所声明的Android文档(http://developer.android.com/reference/android/app/Application.html):

There is normally no need to subclass Application. 

我的问题是。我的应用程序需要在应用程序启动时准备一些数据(例如,从共享首选项加载某些状态数据),然后才能执行任何其他操作。我通常将数据准备逻辑放在一个子类Application中。

如果不鼓励子类化应用程序,我应该在哪里放置app-startup-time数据准备逻辑?什么是最佳实践?

感谢。

3 个答案:

答案 0 :(得分:6)

并不是气馁,只是正如他们所说的那样,“通常”不需要它。

在您的情况下,您正确使用它,我在我自己的许多应用程序中都做了同样的事情。

答案 1 :(得分:1)

我同意@ r2DoesInc和他的回答,它实际上相当普遍,文档可能有些过时。

然而有趣的是,在谷歌2014年I / O的最新应用程序中,他们不会这样做。

https://github.com/google/iosched

(代码的主要部分在) https://github.com/google/iosched/tree/master/android/src/main/java/com/google/samples/apps/iosched

位置证明应用程序不是子类 https://github.com/google/iosched/blob/master/android/src/main/AndroidManifest.xml

答案 2 :(得分:0)

不要费神醒着一个超老的话题,但是您可以利用ContentProvider来初始化SharedPreferences中的项目,而不必子类化Application。 (Firebase用于其SDK的相同技术)。它们在创建Application对象后立即初始化。

可以在此处找到示例:https://github.com/florent37/ApplicationProvider