我有一個自定義ContentProvider,用於將從GPS獲得的修復程序存儲到SQLite數據庫中。這個類覆蓋了ContentProvider方法(刪除,插入,查詢...),但注意我還包含了一個查詢最後修正的方法。Android:在ContentProvider中調用自定義方法
public class FixesContentProvider extends ContentProvider {
@Override
public int delete(...) { ... }
...
@Override
public Cursor query(...) { ... }
public Cursor getLastFix(Uri uri) { ... }
}
這是很容易通過調用getContentResolver()
查詢到其他服務或活動的數據。
ContentResolver cR = getContentResolver();
Cursor fixes = cR.query(CONTENT_URI, ...);
但我無法調用我的自定義方法(FixesContentProvider#getLastFix
)。 我怎樣才能調用ContentProvider中定義的自定義方法?
也許我不明白ContentProvider/ContentResolver如何在這種情況下工作,但官方的Android documentation provided by Google在這個意義上不是很明確。
這就是我所做的。我使用UriMatcher.addUri將「content:// xxx/fixes」和「content:// xxx/fixes/last」與兩個不同的代碼進行匹配,並在交換機中執行相應操作(myUriMatcher.match( uri)){case CODE_1:xxx; case CODE_2:yyy; }。非常感謝你。 – 2010-07-24 19:20:03