I have the following DatabaseAccess.java class which contains the following code in order to instance , open , close and some queries :
public class DatabaseAccess {
Context context;
private SQLiteOpenHelper openHelper;
private SQLiteDatabase database;
private static DatabaseAccess instance;
/**
 * Private constructor to avoid object creation from outside classes.
 *
 * @param context
 */
private DatabaseAccess(Context context) {
    this.context = context;
    this.openHelper = new DatabaseHelper(context);
}
/**
 * Return a singleton instance of DatabaseAccess.
 *
 * @param context the Context
 * @return the instance of DabaseAccess
 */
public static DatabaseAccess getInstance(Context context) {
    if (instance == null) {
        instance = new DatabaseAccess(context);
    }
    return instance;
}
/**
 * Open the database connection.
 */
public void open() {
    this.database = openHelper.getWritableDatabase();
}
/**
 * Close the database connection.
 */
public void close() {
    if (database != null) {
        this.database.close();
    }
} 
However , im getting a serious SONAR warning about this :
Do not place Android context classes in static fields (static reference to DatabaseAccess which has field context pointing to Context); this is a memory leak
In my app , every time I need to use databaseAccess instance I do the following on onViewCreated()
  @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    databaseAccess = DatabaseAccess.getInstance(getContext());
}
I'm really confused about this , how can I fix this memory leak ?
