根据它所声明的Android文档(http://developer.android.com/reference/android/app/Application.html):
There is normally no need to subclass Application.
我的问题是。我的应用程序需要在应用程序启动时准备一些数据(例如,从共享首选项加载某些状态数据),然后才能执行任何其他操作。我通常将数据准备逻辑放在一个子类Application中。
如果不鼓励子类化应用程序,我应该在哪里放置app-startup-time数据准备逻辑?什么是最佳实践?
感谢。
答案 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对象后立即初始化。