Tôi có Trình tạo nội dung tùy chỉnh mà tôi sử dụng để lưu các bản sửa lỗi thu được từ GPS vào cơ sở dữ liệu SQLite. Lớp này ghi đè các phương thức ContentProvider (xóa, chèn, truy vấn ...), nhưng thông báo tôi cũng đã bao gồm một phương thức để truy vấn sửa lỗi cuối cùng.Android: gọi phương thức tùy chỉnh trong ContentProvider
public class FixesContentProvider extends ContentProvider {
@Override
public int delete(...) { ... }
...
@Override
public Cursor query(...) { ... }
public Cursor getLastFix(Uri uri) { ... }
}
Thật dễ dàng để truy vấn dữ liệu từ các dịch vụ hoặc hoạt động khác bằng cách gọi getContentResolver()
.
ContentResolver cR = getContentResolver();
Cursor fixes = cR.query(CONTENT_URI, ...);
Nhưng tôi không thể gọi phương thức tùy chỉnh của mình (FixesContentProvider#getLastFix
). Tôi làm cách nào để gọi các phương thức tùy chỉnh được xác định trong Trình cung cấp nội dung?
Có lẽ tôi không hiểu cách ContentProviders/ContentResolvers hoạt động trong trường hợp này, nhưng chính thức Android documentation provided by Google không rõ ràng theo nghĩa này.
Đó là những gì tôi đã làm. Tôi đã sử dụng UriMatcher.addUri để đối sánh "content: // xxx/fixes" và "content: // xxx/fixes/last" thành hai mã khác nhau, hoạt động tương ứng (như bạn đề xuất) trong một chuyển đổi (myUriMatcher.match (uri)) {case CODE_1: xxx; trường hợp CODE_2: yyy; }. Cảm ơn nhiều. –