Autore Topic: MinSDK, TargetSDK.. evitare crash  (Letto 431 volte)

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
MinSDK, TargetSDK.. evitare crash
« il: 24 Febbraio 2014, 10:59:53 CET »
0
Non so se aprirla qua o da un'altra parte (quella relativa a java).. comunque va beh.

Allora mettiamo che io abbia come minsdk 10 e che voglia usare delle funzioni 14+ laddove supportate.

Parto dall'assunto che nel momento in cui manipolo qualunque cosa che sia minsdk 14 se la fai girare su android 2.3.x crasha.

Io ho pensato a questa soluzione:

Codice (Java): [Seleziona]
class Modulo {
// Tutta roba generica di controllo
}

class ModuloSDK14 extends Modulo{

// variabile che richiede sdk14
// metodi che usano sdk14 e così via

}

class GestoreModuli{

// Settato null
ModuloSDK14 m_Modulo = null;

// metodo init
public boolean initModules(){
// qua dentro fa un test per verificare il supporto SDK14 e istanzia il modulo se disponibile
}

public ModuloSDK14 getSDK14Module(){
// restituisce il modulo, che è null se non è stato inizializzato perché la versione di android è < 14
}

}
Visto che non ho più device gingerbread chiedo.. "nascondendo" così il ModuloSDK14 posso farlo girare su gingerbread visto che non toccherei mai niente che sia SDK 14+ o il getSDK14Module dovrebbe riportarmi un Modulo che dovrei andarmi a castare da solo dopo se != null? Cipè dovrei mettere m_Module di tipo Modulo o secondo voi va bene così?

Io credo che vada bene così perché in nessun punto dell'esecuzione si allocano/usano variabili o metodi SDK 14 se la build version è inferiore.

Pareri?

Edit: prima che qualcuno mi faccia notare che riportare null in giro non è una bella cosa, premetto che nel codice vero e proprio c'è un booleano che mi dice se è supportato SDK 14+, booleano che uso in fase di inizializzazione di una sezione della app, la quale una volta configurata o chiama UNA VOLTA la getSDK14Module (e fa comunque un test null) e si tiene il riferimento all'istanza o NON LA CHIAMA MAI.  :-P
« Ultima modifica: 24 Febbraio 2014, 11:03:27 CET da undead »