我已经完成了一个Android应用程序类,它实现了Singleton模式并将静态对象绑定到它。
public class App extends Application
{
public static BigObject myObj;
private static App instance;
public static App getInstance()
{
return instance;
}
@Override
public void onCreate() {
super.onCreate();
instance = this;
myObj = new BigObject(this);
}
}
当getInstance()。myObj.something()从BroadcastReceiver或Service调用时,有关性能,内存泄漏或异常的实现是否有任何问题?
答案 0 :(得分:1)
我没有看到此实施方面的任何问题。 Application对象基本上是一个单例。
答案 1 :(得分:1)
我看到的唯一缺点是有些难看的代码,使用依赖注入会更好。我不知道,但是如果操作系统保证所有其他组件将在Application :: onCreate之后启动而不是没有问题。即使非主线程也不会缓存bigObject的值。但是如果你想在onCreate之后设置bigObject的值,或者它的创建需要很长时间,你可能会遇到数据竞争或启动缓慢的问题。