虽然通常不建议使用扩展Application
的类,但存储跨线程全局访问所需的变量的存储方式有哪些呢?
SharedPreferences由于其物理存储和频繁访问它而导致性能问题,因此已成为选择
案例示例:一个购物应用程序,该应用程序在Application类中拥有有关上次查看产品的int值。该变量用于视图回收器的onBindViewHolder方法中,因此无法使用SharedPreferences访问该变量,因为滚动时屏幕会冻结
我现在唯一知道的方法是将它传递给适当的构造函数参数,因为它可能导致非常奇怪的构造函数参数,或者通过意图(并非总是可行的解决方案)(您好,适配器)
答案 0 :(得分:4)
存储跨线程全局访问所需的变量的替代方法是什么?
static
字段,最好是单例虽然通常不建议使用扩展Application的类
仅使用Application
子类来存储全局数据是没有意义的-单例是更好的选择。自定义Application
子类非常适合按进程初始化,例如设置依赖项注入框架,挂接崩溃日志记录等。