我是Android的新手并且在Application类和Singleton之间感到有些困惑。据我所知,由于 Out of Memory Exception 。那么,除了使用持久性存储之外的任何解决方案。除此之外,在哪种情况下Application类有用吗?
答案 0 :(得分:1)
我非常推荐单身人士。如果你有一个需要上下文的单例,请:
MySingleton.getInstance(Context c) {
//
// ... needing to create ...
sInstance = new MySingleton(c.getApplicationContext());
}
我更喜欢单身人士而不是应用程序,因为它有助于保持应用程序更有条理和模块化 - 而不是让一个地方需要维护整个应用程序中的所有全局状态,每个单独的部分都可以自行处理。事实上,单身人士懒惰地初始化(根据要求)而不是引导你在Application.onCreate()中预先做好所有初始化的路径。
使用单身人士并没有什么本质上的错误。只要有意义,请正确使用它们。 Android框架实际上有很多,因为它可以维护已加载资源和其他此类事物的每个进程缓存。
对于简单的应用程序,多线程并不会成为单例的问题,因为通过设计,应用程序的所有标准回调都会在进程的主线程上发送,因此您不会发生多线程,除非您通过线程显式地引入它,或者通过将内容提供者或服务IBinder发布到其他进程来隐式地引入它。