3
我在项目中使用Roboguice进行DI。根据android文档,只有一个应用程序实例可以存在。但是由OS和Roboguice创建的实例是不同的。Roboguice创建自己的应用程序类实例
如何强制Roboguice注入由OS创建的应用程序并禁用创建新实例?
一些代码,说明如下
public class MyApplication extends Application {
public static MyApplication getInstance() {
if (instance == null) {
throw new IllegalStateException("Application isn't initialized yet!");
}
return instance;
}
@Override
public void onCreate() {
super.onCreate();
instance = this;
}
}
public class MyActivity extends RoboActivity {
// roboApp and osApp two different objects but expected that roboApp the same as osApp
@Inject
private MyApplication roboApp;
private MyApplication osApp = MyApplication.getInstance();
}
如何不同?也许RoboApp只是MyApplication的继承?或者他们投到应用程序,所以你放弃你的自定义变量?这样的事情.. – katit
不,roboApp是MyApplication的实例,但它没有正确初始化,因为RoboGuice在施工期间没有调用onCreate –
Dmitriy,我有类似的问题给你。特别是我想知道是否有可能有2个应用程序的实例。对的,这是可能的。例如,您可以将Service以不同的流程运行,并通过IPC与您的应用进行通信。不知道如何Robo的作品,但它可能是这样的.. – katit