SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

java, usando corretamente variáveis ​​estáticas para evitar deadlock - Sincronizando


Acho que tudo que você precisa é criar uma Classe de Aplicativo

[1] Todas essas variáveis ​​que você pegou em Util, que são usadas em quase todas as outras classes, podem ser tomadas nesta classe de Aplicação. Portanto, essas variáveis ​​estarão disponíveis para todas as outras classes.

[2] Crie uma instância Singelton da classe de aplicativo . Basta pesquisar no Google sobre isso.

[3] Também crie Singleton de DataBaseHelper (se possível e pode ser aplicado), portanto, uma única instância ajuda você em todos os lugares.

A classe do aplicativo é a classe global no android, então você pode usá-lo para armazenar e acessar todos os dados globais. por exemplo. :
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;
    }
}

COMO USAR, VEJA ISTO
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...
    }
}

Mais uma coisa. Em 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"
    ...
    ...