Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 声明多个活动中使用的常量的最佳实践_Android_Convention - Fatal编程技术网

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

Android 声明多个活动中使用的常量的最佳实践,android,convention,Android,Convention,在一些教程中,我看到在相关活动的顶部将结果代码设置为“private static final int”。对我来说,这似乎不是最好的方法,因为我发现自己必须不断地引用其他类来找到正确的代码,而不是引用在其他地方创建的相同代码 有更好的方法吗?仅仅创建一个实用程序类来保存公共结果代码、请求代码、数据键等是否是一种不好的做法?我以前从未见过这样做。另一种方法是将这些变量保存在Gradle build中,并像这样使用它们:BuildConfig.VARIABLE 例如: 在渐变文件中: buildT

在一些教程中,我看到在相关活动的顶部将结果代码设置为“private static final int”。对我来说,这似乎不是最好的方法,因为我发现自己必须不断地引用其他类来找到正确的代码,而不是引用在其他地方创建的相同代码


有更好的方法吗?仅仅创建一个实用程序类来保存公共结果代码、请求代码、数据键等是否是一种不好的做法?我以前从未见过这样做。

另一种方法是将这些变量保存在Gradle build中,并像这样使用它们:
BuildConfig.VARIABLE

例如:

在渐变文件中:

 buildTypes {
    release {
     buildConfigField "java.lang.String", "DATABASE_NAME", "\"db_name\""
    }
}
在Java中:
BuildConfig.DATABASE\u NAME

优点:

  • 可以更改不同生成的常量值
  • 有一个地方有所有的程序常量
  • IDE/Gradle自动生成(BuildConfig)
参考资料:

  • 0.14.3

我认为这是个人偏好,尽管将所有静态数据都放在实用类中似乎更有意义。为了简单起见,教程可能会在“活动”中显示它们,这比使用实用程序类更容易理解,因为它们只需要几个静态数据。

如果您需要为几个类共享常量,您可以创建特殊的“常量”类并引用它

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;

}
ru.kopeyko.**;
/**
*用于保存“***”应用程序的各种常量的类
* 
*@作者Andrey Kopeyko
*/
公共期末班{
公共静态最终字符串UUID_DEFAULT=“00000000-0000-0000-0000-000000000000”;
公共静态最终字符串版本\u CODE=“versionCode”;
公共静态最终长1秒=1000L;
公共静态最终积分位置\最大\天数=32;
公共静态最终长数据库维护间隔=1*86400*1000L;
}

由于我发现自己必须不断地引用其他类
创建一个实用类来保存常见的结果代码
这两种方法有何不同?难道你不想把
“private static final int”放在公共类的顶部吗?不,从多个不同的活动中,我想返回一个“RESULT\u LOGOUT”,返回执行用户注销功能的根活动。我想知道我是否应该在根活动中,在不同的资源文件中,在实用程序类中,在所有需要它的类中,将它声明为公共静态final int(作为私有int),等。我发现传播是必要的,因为我也想提供后退按钮功能。
如果我应该在根活动、不同的资源文件、实用程序类中将其声明为公共静态整数
。。。无论何处:它总是一个“publicstaticint”声明。你必须引用包含类Edited我的措辞太鲁莽了。这些将是常量而不是变量。这不是常量定义吗?是的,它是:)。我认为所有的计算机程序都有一些常数。在某种抽象层次上,你需要说X=1,问题是怎么做,什么时候做。我知道他想要常数。在我看来,当他说“vars”时,他的意思是“consts”:。我阅读代码而不是注释;)我不再倾向于使用固定的类。这太棒了,谢谢你让我接触到这一切!