Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 除了在应用程序类中存储变量,还有哪些替代方案?_Android_Global Variables - Fatal编程技术网

Android 除了在应用程序类中存储变量,还有哪些替代方案?

Android 除了在应用程序类中存储变量,还有哪些替代方案?,android,global-variables,Android,Global Variables,虽然通常不建议使用扩展应用程序的类,但有什么替代方法来存储需要跨线程全局访问的变量 SharedReferences是不可选择的,因为它的物理存储和频繁访问会导致性能问题 示例案例:一个购物应用程序,在应用程序类中保存上次查看产品的int值。该变量用于view recycler onBindViewHolder方法,因此无法使用SharedReferences访问该变量,因为滚动时屏幕会冻结 目前我知道的唯一方法是在构造函数参数中传递它,这是合理的,因为它可能导致非常奇怪的构造函数参数,或者出于

虽然通常不建议使用扩展
应用程序的类
,但有什么替代方法来存储需要跨线程全局访问的变量

SharedReferences是不可选择的,因为它的物理存储和频繁访问会导致性能问题

示例案例:一个购物应用程序,在应用程序类中保存上次查看产品的int值。该变量用于view recycler onBindViewHolder方法,因此无法使用SharedReferences访问该变量,因为滚动时屏幕会冻结

目前我知道的唯一方法是在构造函数参数中传递它,这是合理的,因为它可能导致非常奇怪的构造函数参数,或者出于某种目的,这并不总是可行的解决方案(hello adapters)

存储需要跨线程全局访问的变量的替代方法有哪些

  • 静态
    字段,最好为单例
  • 依赖注入单例(如Dagger 2、Koin)
虽然通常不建议使用扩展应用程序的类

仅使用
应用程序
子类来存储全局数据是毫无意义的-单例是更好的选择。自定义
应用程序
子类可以用于每个进程的初始化,例如设置依赖项注入框架、连接崩溃日志等

存储需要跨线程全局访问的变量的替代方法有哪些

  • 静态
    字段,最好为单例
  • 依赖注入单例(如Dagger 2、Koin)
虽然通常不建议使用扩展应用程序的类


仅使用
应用程序
子类来存储全局数据是毫无意义的-单例是更好的选择。自定义
应用程序
子类适用于每个进程的初始化,例如设置依赖项注入框架、连接崩溃日志等。

您保存的是什么类型的信息?数据列表?为什么shared pref不理想?“虽然通常不建议使用扩展应用程序的类”这句话基于什么?因为Android是“智能”的,一旦设备资源不足,他可以从应用程序类释放数据。还有更多的Android从不“在设备资源不足时从应用程序类发布数据”。它杀死了整个Linux进程和应用程序类。在这种情况下,您应该考虑永久存储,例如SyrdPrf.s,您保存的是什么类型的信息?数据列表?为什么shared pref不理想?“虽然通常不建议使用扩展应用程序的类”这句话基于什么?因为Android是“智能”的,一旦设备资源不足,他可以从应用程序类释放数据。还有更多的Android从不“在设备资源不足时从应用程序类发布数据”。它杀死了整个Linux进程和应用程序类。在这种情况下,您应该考虑永久存储,例如SharedPrefs。