Mam niestandardowego dostawcę treści, którego używam do przechowywania poprawek uzyskanych z GPS w bazie danych SQLite. Ta klasa nadpisuje metody ContentProvider (delete, insert, query ...), ale zauważ, że dodałem również metodę sprawdzania ostatniej poprawki.Android: wywoływanie metod niestandardowych w ContentProvider
public class FixesContentProvider extends ContentProvider {
@Override
public int delete(...) { ... }
...
@Override
public Cursor query(...) { ... }
public Cursor getLastFix(Uri uri) { ... }
}
Jest to dość łatwe do kwerendy danych z innych usług lub działalności, wywołując getContentResolver()
.
ContentResolver cR = getContentResolver();
Cursor fixes = cR.query(CONTENT_URI, ...);
Ale nie jestem w stanie zadzwonić do mojej metody niestandardowej (FixesContentProvider#getLastFix
). Jak mogę wywołać metody niestandardowe zdefiniowane w dostawcy treści?
Może nie rozumiem, jak działają ContentProviders/ContentResolvers w tym przypadku, ale oficjalne Android documentation provided by Google nie jest bardzo jasne w tym sensie.
Tak właśnie zrobiłem. Użyłem UriMatcher.addUri, aby dopasować "content: // xxx/fixes" i "content: // xxx/fixes/last" do dwóch różnych kodów, działając odpowiednio (jak sugerujesz) w przełączniku (myUriMatcher.match (uri)) {case CODE_1: xxx; case KOD_2: rrr; }. Dziękuję Ci bardzo. –