声明频繁变化的Android常量

时间:2015-12-18 20:40:47

标签: android constants

最好的方法在android中声明常量。请记住,这个常数每月都有所不同。我试图了解如何通过使用Android端点来保存它们,但我无法弄清楚我的应用程序如何下载和使用新的常量以及我如何更新它们

public static final double inflation = 0.23;
public static final double REP = 0.3;

我的问题是这个常数会在几个月的时间内波动到类似

public static final double inflation = 0.18;
public static final double REP = 0.125;

我的理解是,如果我在java类中声明它们,用户可能每个月都被迫更新应用程序。我们想要实现的是能够及时更新这些常量。

1 个答案:

答案 0 :(得分:1)

这很模糊。我认为没有任何规定的“最佳方式”来实现常数值。

据说,这里是黑暗中的几个镜头:

方法1 ...一个标准的,知名的类,其public static字段具有常量值

public final class Constants {
  private Constants() { throw new AssertionError(); }

  public static final String VALUE_1 = "some constant value";
  public static final int    VALUE_2 = 43;
}

方法2 ...如果你有众所周知的值组合,你可以使用一个众所周知的用常量值初始化的枚举类型和那些值的相关访问器

public enum Constants {
  TYPE_1 ("some constant value", 32),
  TYPE_2 ("another constant value", 43);

  private String stringConstant;
  private int    integerConstant;

  protected Constants(String stringConstant, integerConstant) {
    this.stringConstant = stringConstant;
    this.integerConstant = integerConstant;
  }

  public String stringConstant() { return this.stringConstant; }
  public int integerConstant() { return this.integerConstant; }
}

方法3 ...您可以利用Gradle构建系统将常量值写入生成的BuildConfig

(在您应用的build.gradle中)

android {
  ...
  buildConfigField 'String', 'TYPE_1', '"some constant value"'
  ...
}

构建项目将在应用程序生成的BuildConfig类中生成名为public static的{​​{1}}字段。