Стандартный подход:
Обычно, если у вас есть созданный вами ContentProvider и вы правильно зарегистрировали его в файле manifest.xml, вы можете просто сделать (например)
@Override
public void onCreate(Bundle savedInstanceState){
...
if (getIntent().getData() == null) {
getIntent().setData(MyMetaData.CONTENT_URI);
}
Cursor cursor = managedQuery(getIntent().getData(), null, null, null, null);
//create an appropriate adapter and bind it to the UI
...
}
при этом будет автоматически вызываться ContentProvider, который может обрабатывать заданный uri контента, если вы зарегистрировали его в файле manifest.xml, например
<provider android:name="MyContentProvider" android:authorities="com.mycompany.contentprovider.MyContentProvider" />
Я всегда предлагаю людям взглянуть на Пример с блокнотом для изучения того, как следует реализовывать ContentProviders.
Альтернативы:
Вообще говоря, если вам нужен доступ к вашим данным только во время вашей деятельности, я бы добавилк «Стандартному подходу» с использованием ContentProviders, который кстати.возможно, делает его наиболее гибким решением.
Если вашему решению требуется для доступа к данным также из не-Activity классов, где у вас нет методов «managedQuery», то вы могли бы реализовать какой-то видDAO (объект доступа к данным) занимается самостоятельно.Примером может быть
public class MyDataDao implements IMyDataDao {
private ContentResolver contentResolver;
public MyDataDao(ContentResolver contentResolver){
this.contentResolver = contentResolver;
}
@Override
public MyDataObject readMyDataObjectById(long id){
MyDataObject result = null;
Cursor myDataObjectCursor = contentResolver.query(...);
if(myDataObjectCursor != null && myDataObjectCursor.moveToFirst()){
result = new MyDataObject();
result.setTitle(myDataObjectCursor.get..);
...
}
myDataObjectCursor.close();
return result;
}
}
Это может также сработать.Затем вы звоните своему DAO
IMyDataDao dao = new MyDataDao(context.getContentResolver());
MyDataObject anObj = dao.readMyDataObjectById(10);
...
Надежда, которая указала вам в правильном направлении:)