我想了解Android的生命周期。
因此,如果操作系统面临资源短缺,即使静态变量也会丢失,对吧? (Android static variables are lost)
,例如static final String
变量
public static final String OPTION = "option";
暂停应用后,可能会丢失。
那么除了使用' strings.xml'之外,如何声明可以在应用程序的生命周期中一直访问的常量?因为我无法静态访问该文件。
是否可以声明其值始终保持的常量变量?
答案 0 :(得分:2)
您是正确的,Android操作系统可以随时终止您的应用程序进程,这可能导致static
变量“丢失”。 然而,对于简单常量,这不是问题。一旦您的应用程序再次启动,这些常量将重新初始化并可供使用。像
public static final String MY_APP_NAME = "Stack Overflow";
public static final int VERSION_NUMBER = 1;
使用起来非常安全。当你有这样的静态变量时,你只会在操作系统遇到问题时遇到麻烦:
public static MyObject;
其值可以在应用程序进程的生命周期内更改。
答案 1 :(得分:0)
您可以在Application类中使用getter,条件是如果变量为null,则从共享首选项获取它,否则从内存返回。
此类变量的setter也会将值设置为共享首选项。
public class MyApplication extends Application {
private String var;
public String getVar() {
if(var == null){
return getVarFromSP();
}
return var;
}
public void setVar(String s) {
var = s;
storeVarToSP(s);
}
}