Yo pregunto, que tiene que ver PHP en todo esto?...Android usa SQLite como base de datos y es gestionado desde Java. PHP lo usas en el servidor, no en la aplicación.
Por otro lado, logicamente, si abris y cerras todo el tiempo la conexion a base de datos el consumo de memoria se dispará y chau aplicación. Tenes que usar un singleton.
Lo que podes hacer es crear una clase que herede de SQLiteOpenHelper y agregar un metodo static synchronized para verifiicar si existe una instancia de la base de datos, si existe la retorna, si no instancia la clase.
Código Java:
Ver originalpublic class DatabaseHelper extends SQLiteOpenHelper {
private static DatabaseHelper sInstance;
private static final String DATABASE_NAME
= "database_name"; private static final String DATABASE_TABLE
= "table_name"; private static final int DATABASE_VERSION = 1;
public static synchronized DatabaseHelper getInstance
(Context context
) {
// Use the application context, which will ensure that you
// don't accidentally leak an Activity's context.
// See this article for more information: http://bit.ly/6LRzfx
if (sInstance == null) {
sInstance = new DatabaseHelper(context.getApplicationContext());
}
return sInstance;
}
/**
* Constructor should be private to prevent direct instantiation.
* make call to static method "getInstance()" instead.
*/
private DatabaseHelper
(Context context
) { super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
}
Luego en el activity, fragment o service, creas una variable de clase, haces referencia a la instancia de tu SQLiteOpenHelper. Finalmente en en onStop() verificas si existe la instancia, si es true, la cerras.