You should have a different content provider per resource but use one sqlliteopenhelper (1 database).
There are a few ways to do this. What I do (which may not be the best) it use a custom Application object in my app (http://developer.android.com/reference/android/app/Application.html), that has methods for accessing objects I want to be a singleton that also need a context. It might not be the best way but it works for me.
e.g.
public class MainApplication extends Application {
public static DatabaseHelper databaseHelper;
public static Context applicationContext;
@Override
public void onCreate() {
super.onCreate();
databaseHelper = new DatabaseHelper(this);
applicationContext = getApplicationContext();
}
@Override
public void onTerminate() {
databaseHelper.close();
super.onTerminate();
}
}
DatabaseHelper is just my concrete implementation of SQLiteOpenHelper.
Define the custom application object in your Android manifest file.
<application android:name="com.example.MainApplication" ...>