Tôi hiểu, ít nhất là trên giấy, sự khác biệt cơ bản giữa Nhà cung cấp nội dung và chỉ truy cập trực tiếp vào SQLiteDatabase. Tôi có một nguyên mẫu hoạt động cho ứng dụng của tôi, và hiện tại nó chỉ là trực tiếp nhấn vào cơ sở dữ liệu. Tôi không thực sự có bất kỳ trải nghiệm nào bằng cách sử dụng mẫu Nhà cung cấp nội dung, nhưng tôi đã phát hiện ra rằng tôi sẽ cần phải chia sẻ một số dữ liệu với một ứng dụng khác.Nhà cung cấp nội dung và truy cập cơ sở dữ liệu trực tiếp (Quản lý giao dịch)
Tôi sẽ chỉ chia sẻ khoảng 2 trong số một tá bảng, vì vậy tôi tự hỏi liệu tôi có nên hoàn toàn làm lại lớp dữ liệu để theo mẫu Nhà cung cấp nội dung hay chỉ hiển thị những bảng đó thông qua Nhà cung cấp nội dung vì lợi ích của ứng dụng khác và vẫn trực tiếp truy cập cơ sở dữ liệu trong ứng dụng chính.
Một trong những vấn đề tôi gặp phải với nguyên mẫu là tôi có một số giao dịch khá phức tạp và mã tôi viết để làm việc đó không được thiết kế đặc biệt tốt và không thể sử dụng lại được. Khi tôi thêm nhiều chức năng hơn cho ứng dụng này, tôi sẽ cần lớp truy cập dữ liệu được thiết kế tốt hơn, trước khi tôi tự viết, có ai biết về bất kỳ tài nguyên nào có mẫu thiết kế cho loại điều này không? Ngoài ra, nếu tôi cần phải đi tuyến đường Nhà cung cấp nội dung, tôi sẽ có quyền kiểm soát vững chắc đối với các giao dịch cơ sở dữ liệu không?
Cảm ơn và tôi đồng ý rằng sẽ không có lý do gì để sử dụng nhà cung cấp nội dung chỉ để đáp ứng mẫu. Trong thực tế, việc truy cập trực tiếp vào cơ sở dữ liệu là một mô hình hoàn hảo khả thi. Sau một vài nghiên cứu nữa, có vẻ như ContentProvider không thể quản lý các giao dịch trên nhiều cuộc gọi API như tôi cần (http://www.mail-archive.com/[email protected]/msg42281.html) Tôi sẽ gắn bó với truy cập trực tiếp trong ứng dụng lõi và chỉ cần thêm Trình cung cấp nội dung để hiển thị những gì cần thiết. – Mike