SQLite
 sql >> Database >  >> RDS >> SQLite

java ,Utilizzando correttamente le variabili statiche per prevenire deadlock - Sincronizzazione

Penso che tutto ciò che ti serve sia creare un Classe di applicazione

[1] Tutte quelle variabili che hai preso in Util, che sono usate in quasi tutte le altre classi, possono essere prese in questa classe Application. Quindi queste variabili saranno disponibili per tutte le altre classi.

[2] Crea un'istanza Singelton di Classe di applicazione . Basta Google per questo.

[3] Crea anche Singleton di DataBaseHelper (se possibile e può essere applicato), quindi la singola istanza ti aiuta ovunque.

La classe dell'applicazione è una classe globale in Android, quindi puoi usarla per archiviare e accedere a tutti i dati globali. per esempio. :

public class AppData extends Application {

    public static AppData appData;

    public int currentUserId; // etc.

    //Const.
    public AppData() {
        appData = this;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        loginPreferences = getSharedPreferences(
            SPF_NAME, 0);

        pathToSDCard = Environment.getExternalStorageDirectory().getAbsolutePath();
        System.out.println("Path : " + pathToSDCard);
       //etc.
    }

 //    MOST IMP  FOR GETTIN SINGELTON INSTANCE     <<<---<<<---<<<---
    public static AppData getAppData() {
        return appData;
    }
}

COME USARLO, GUARDA QUESTO

class ABC extends Activity {
    AppData appData;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.xyz);

        appData = AppData.getAppData();
        ...........
        ...........

        appData.VARIABLE_NAME...
    }
}

Un'altra cosa. In AndroidMenifest.xml

    ...
    ...
<application             //   In Application Tag
        android:name="PACKAGE_NAME.AppData"  //  <<  Add here class name in which you have extended Application
        android:icon="@drawable/ic_launcher"
    ...
    ...