应用程序类使用场景

时间:2018-01-02 09:04:15

标签: android

我是Android的新手并且在Application类和Singleton之间感到有些困惑。据我所知,由于 Out of Memory Exception 。那么,除了使用持久性存储之外的任何解决方案。除此之外,在哪种情况下Application类有用吗?

1 个答案:

答案 0 :(得分:1)

我非常推荐单身人士。如果你有一个需要上下文的单例,请:

MySingleton.getInstance(Context c) {
    //
    // ... needing to create ...
    sInstance = new MySingleton(c.getApplicationContext());
}

我更喜欢单身人士而不是应用程序,因为它有助于保持应用程序更有条理和模块化 - 而不是让一个地方需要维护整个应用程序中的所有全局状态,每个单独的部分都可以自行处理。事实上,单身人士懒惰地初始化(根据要求)而不是引导你在Application.onCreate()中预先做好所有初始化的路径。

使用单身人士并没有什么本质上的错误。只要有意义,请正确使用它们。 Android框架实际上有很多,因为它可以维护已加载资源和其他此类事物的每个进程缓存。

对于简单的应用程序,多线程并不会成为单例的问题,因为通过设计,应用程序的所有标准回调都会在进程的主线程上发送,因此您不会发生多线程,除非您通过线程显式地引入它,或者通过将内容提供者或服务IBinder发布到其他进程来隐式地引入它。