我在尝试摆脱应用程序代码中存在的大量静态变量时遇到了很多麻烦。
例如,我有一个QueryUtils.JAVA,在这里我将最大值设置为三个不同片段的进度条。
EstatisticasFragment.ef.loadingIndicator.setMax(acumuladorResultados);
ResultadosFragment.rf.loadingIndicatorResultados.setMax(acumuladorResultados);
DeletadosFragment.df.loadingIndicatorDeletados.setMax(acumuladorResultados);
现在,在每个片段上我都这样做:
static EstatisticasFragment ef;
static DeletadosFragment df;
static ResultadosFragment rf;
我知道这会导致内存泄漏,但我尝试做的每件事都会导致无法从静态上下文中引用非静态变量的相同陷阱。
谢谢!
-------------------------- EDITED ----------------- ---------
好好看一下,在我看来,QueryUtils本来就是静态的,但我怎样才能在Activity QueryUtils(Static)和Fragment(Non Static)之间进行交互?
谢谢!
-------------------------- EDITED ----------------- ---------
答案 0 :(得分:0)
你可以创建一个包含所有变量的新类作为静态变量,并为变量创建getter setter。现在,在要使用变量的类中实例化类对象,并使用setters函数设置变量< / p>