许多Google最近的示例Android应用程序,例如Kotlin Sunflower sample for Jetpack,似乎都没有一个文件来继承Application()类。他们只是直接参加了活动。
这是新的最佳实践吗?
如何在不覆盖Application类中的onCreate()的情况下使用Dagger2或Koin之类的东西?我还没有读过关于如何进行依赖项注入的方法,该方法不需要对Application.onCreate()进行任何更改。
我正在尝试学习Android / Kotlin,并以Google的示例为指南。
如果DI问题的答案是将MyApplication.kt文件添加到缺少该文件的项目中,我该如何处理? AndroidManifest.xml文件需要更改还是其他?
还是我应该在JetPack /建筑组件世界中以其他方式做到这一点?
很抱歉,如果已在其他地方提出并回答了此问题。我对此很陌生,甚至不知道缺少MyApplication文件的应用程序的术语,因此对我来说很难搜索。
预先感谢
约翰
答案 0 :(得分:1)
许多Google最近的示例Android应用程序,例如Jetpack的Kotlin Sunflower示例,似乎没有一个文件将Application()类作为子类。他们只是直接参加了活动。
这是新的最佳实践吗?
如果不需要Application类,则不必有一个空的类。它将仅使用框架提供的默认Application
。
如何在不覆盖Application类中的onCreate()的情况下使用Dagger2或Koin之类的东西?我还没有读过关于如何进行依赖项注入的方法,该方法不需要对Application.onCreate()进行任何更改。
只需创建一个应用程序类。
我正在尝试学习Android / Kotlin,并以Google的示例为指南。
如果DI问题的答案是将MyApplication.kt文件添加到缺少该文件的项目中,我该如何处理? AndroidManifest.xml文件需要更改还是其他?
您必须将android:name="fully.qualified.class.name.of.MyApplication"
添加到清单中的<application>
标记中。
还是我应该在JetPack /建筑组件世界中以其他方式做到这一点?
Google建议Dagger2参见https://developer.android.com/jetpack/docs/guide
答案 1 :(得分:0)
Application类用于维护应用程序生命周期的全局状态。即使不扩展它,仍在使用基本实现。请参见the documentation for Application,了解发生了什么情况。