声明在多个活动中使用的常量的最佳实践

Best practice for declaring constants that are used in several Activities

在几个教程中,我看到结果代码在相关活动的顶部设置为 "private static final int"s。对我来说,这似乎不是最好的方法,因为我发现自己不得不经常参考其他 classes 来找到正确的代码,而不是参考在其他地方创建的相同代码。

有更好的方法吗?只制作一个实用程序 class 来保存公共结果代码、请求代码、数据密钥等是不是不好的做法?我以前从未见过这样做。

另一种方法是将此变量保留在 Gradle 中构建并像这样使用它们:BuildConfig.VARIABLE

示例:

在 gradle 文件中:

 buildTypes {
    release {
     buildConfigField "java.lang.String", "DATABASE_NAME", "\"db_name\""
    }
}

在Java中: BuildConfig.DATABASE_NAME

优点:

  • 可以更改不同版本的常量值
  • 所有程序常量都在一个地方
  • 由 IDE/Gradle
  • 自动生成 (BuildConfig)

参考文献:

我认为这是个人喜好,尽管将所有静态数据都放在实用程序中似乎更有意义 class。为简单起见,教程可能会在 Activies 中展示它们,这比使用实用程序 classes 更容易理解,因为它们只需要几个静态变量。

如果您需要为几个 class 共享常量,您可以创建特殊的 "constants" class 并引用它。

package ru.kopeyko.***;

/**
 * class for holding various CONSTANTs for '***' app
 * 
 * @author Andrey Kopeyko <andrey@kopeyko.ru>
 */

public final class Const {

    public static final String UUID_DEFAULT = "00000000-0000-0000-0000-000000000000";
    public static final String VERSION_CODE = "versionCode";
    public static final long ONESECOND = 1000L;
    public static final int POSITIONS_MAX_DAYS = 32;
    public static final long DB_MAINTENANCE_INTERVAL = 1*86400*1000L;

}