Android应用中静态成员的使用不好?

时间:2017-06-13 09:36:00

标签: android design-patterns

我已经完成了一个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调用时,有关性能,内存泄漏或异常的实现是否有任何问题?

2 个答案:

答案 0 :(得分:1)

我没有看到此实施方面的任何问题。 Application对象基本上是一个单例。

答案 1 :(得分:1)

我看到的唯一缺点是有些难看的代码,使用依赖注入会更好。我不知道,但是如果操作系统保证所有其他组件将在Application :: onCreate之后启动而不是没有问题。即使非主线程也不会缓存bigObject的值。但是如果你想在onCreate之后设置bigObject的值,或者它的创建需要很长时间,你可能会遇到数据竞争或启动缓慢的问题。