Ho un ContentProvider personalizzato che utilizzo per archiviare le correzioni ottenute dal GPS in un database SQLite. Questa classe sovrascrive i metodi di ContentProvider (cancella, inserisci, query ...), ma nota che ho incluso anche un metodo per interrogare l'ultima correzione.Android: chiama i metodi personalizzati in ContentProvider
public class FixesContentProvider extends ContentProvider {
@Override
public int delete(...) { ... }
...
@Override
public Cursor query(...) { ... }
public Cursor getLastFix(Uri uri) { ... }
}
E 'abbastanza facile per interrogare i dati di altri servizi o attività chiamando getContentResolver()
.
ContentResolver cR = getContentResolver();
Cursor fixes = cR.query(CONTENT_URI, ...);
ma io non sono in grado di chiamare il mio metodo personalizzato (FixesContentProvider#getLastFix
). Come posso chiamare i metodi personalizzati definiti in ContentProvider?
Forse non capisco come ContentProviders/ContentResolvers funzionano in questo caso, ma lo Android documentation provided by Google ufficiale non è molto chiaro in questo senso.
Questo è quello che ho fatto. Ho usato UriMatcher.addUri per abbinare "content: // xxx/fixes" e "content: // xxx/fixes/last" a due codici diversi, agendo di conseguenza (come proposto) in uno switch (myUriMatcher.match (uri)) {caso CODICE_1: xxx; caso CODICE_2: yyy; }. Grazie mille. –