在清单文件中,我设置:
<application android:name=".MyApplication" />
但是在我打电话的活动中:
getApplication()
它返回android.app.Application实例而不是MyApplication实例。 我认为这是因为我使用的是Dagger2。我是dagger2的新手
答案 0 :(得分:0)
访问应用程序实例的更好方法 - Application类中的属性。 Java示例:
class App extends Application {
private static App instance;
@Override
public void onAttachBaseContext(Context newBase) {
super.onAttachBaseContext(newBase);
this.instance = this;
}
public static App getInstance() {
return this.instance;
}
}
答案 1 :(得分:0)
您的MyApplication
是android.app.Application
的子类,getApplication()将其作为Application
实例返回,但它实际上是您的类。这是继承的使用。您需要通过
MyApplication myApp = null;
Application app = getApplication();
if (app instanceOf MyApplication) {
myApp = (MyApplication) app;
}
或者你可以简单地做
MyApplication myApp = (MyApplication) getApplication();