En varios tutoriales, he visto códigos de resultado configurados como "int finales estáticos privados" en la parte superior de las actividades correspondientes. Para mí, esta no me parece la mejor manera de hacerlo, ya que tengo que consultar constantemente otras clases para encontrar el código correcto en lugar de referirme al mismo código creado en otro lugar.

¿Hay una mejor manera de hacer esto? ¿Es una mala práctica crear una clase de utilidad para contener los códigos de resultado comunes, los códigos de solicitud, las claves de datos, etc.? Nunca antes había visto hacer esto.

1
Tom McFarlin 26 ene. 2015 a las 18:44

3 respuestas

La mejor respuesta

Otra forma es mantener estas variables en la compilación de Gradle y usarlas así: BuildConfig.VARIABLE

Ejemplo:

En archivo gradle:

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

En Java: BuildConfig.DATABASE_NAME

Pros:

  • puede cambiar los valores de las constantes para diferentes compilaciones
  • hay un lugar con todas las constantes del programa
  • generado automáticamente (BuildConfig) por IDE / Gradle

Referencias:

1
MAGx2 26 ene. 2015 a las 15:59

Si necesita compartir constantes para algunas clases, puede crear una clase especial de "constantes" y consultarla.

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;

}
0
Andrey Kopeyko 26 ene. 2015 a las 15:56

Creo que es una preferencia personal, aunque parece más significativo tener todas tus estadísticas en la clase de utilidad. Los tutoriales probablemente los muestren en Activies por simplicidad, que es mucho más fácil de entender que usar clases de utilidad cuando solo necesitan un par de estáticas.

0
dan983 26 ene. 2015 a las 15:54