如何在Android中声明始终可访问的常量?

时间:2017-11-27 05:07:32

标签: android

我想了解Android的生命周期。

因此,如果操作系统面临资源短缺,即使静态变量也会丢失,对吧? (Android static variables are lost

,例如static final String变量

public static final String OPTION = "option";
暂停应用后,

可能会丢失。

那么除了使用' strings.xml'之外,如何声明可以在应用程序的生命周期中一直访问的常量?因为我无法静态访问该文件。

是否可以声明其值始终保持的常量变量?

2 个答案:

答案 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);
  }
}