Если ваше приложение только обращается к вашему приложению, я бы посоветовал вообще пропустить контент-провайдера. Причина в том, что это добавит ненужные слои между вашим приложением и базой данных, что не поможет производительности.
Я рекомендую написать класс, единственной задачей которого является обновление / запрос базы данных. Затем из других ваших классов / занятий вы можете создать экземпляр этого класса доступа к БД для получения или размещения данных.
Вы можете одновременно запустить несколько экземпляров вашего класса БД.
Edit:
Примеры фрагментов кода (я взял определение класса и пару методов из моего рабочего кода) Это было мое первое приложение, поэтому оно не идеально, но оно работает:
public class VoyagerDB extends SQLiteOpenHelper {
@Override
public void onCreate(SQLiteDatabase db) {
boolean ret = false;
// build out the schema
ret = populateSchema(db);
}
/**
* Returns information from a given obdRequest record.
* @param requestID
* @return
*/
public Cursor getRequestInfo (String requestID) {
Cursor c = null;
String sql = "SELECT id _id, active,request,formula, description,frequency,minValue,maxValue,numDataBytes " +
"FROM obdRequest " +
"WHERE ID=" + requestID;
c = localDBRW.rawQuery(sql, null);
return c;
}
/**
* If the given settings key exists in the DB, return its record ID. Otherwise return blank.
* @param key
* @return
*/
public String settingsKeyExists (String key) {
String recordID = "";
Cursor c = null;
String sql = "SELECT id,key,value from settings WHERE key = ?";
String selectionArgs[] = {key};
c = localDBRW.rawQuery(sql, selectionArgs);
if (c == null) {
return "";
}
if (c.getCount()<1) {
c.close();
return "";
}
c.moveToFirst();
recordID = c.getString(c.getColumnIndex("id"));
c.close();
return recordID;
}
}