Tôi là lập trình viên android mới và gần đây tôi đã làm theo hướng dẫn cách tạo cơ sở dữ liệu SQLite cục bộ và sau đó truy cập cơ sở dữ liệu bằng cách sử dụng SQLiteDatabase.rawQuery để trả về một con trỏ. Tôi muốn sửa đổi ứng dụng của mình để sử dụng CursorLoader, đây rõ ràng là một cách tốt hơn để truy cập cơ sở dữ liệu. Vấn đề của tôi là trình xây dựng CursorLoader mong đợi một URI được cung cấp. Tôi chỉ cần nhập "file: /// [đường dẫn đến db]"? Có vẻ hơi lộn xộn một chút.CursorLoader, lấy URI cho cơ sở dữ liệu cục bộ
Trả lời
Lý do đằng sau trình tải con trỏ chấp nhận URI là nó dự kiến truy vấn một contentProvider và không phải là một cơ sở dữ liệu thô.
Vì vậy, tôi khuyên bạn nên tạo nhà cung cấp nội dung sử dụng nội bộ cơ sở dữ liệu của bạn để bạn có thể trực tiếp sử dụng lớp CursorLoader.
Lợi thế của việc sử dụng nhà cung cấp nội dung là nó gói gọn dữ liệu của bạn tốt hơn và bạn có thể dễ dàng tận dụng nhiều apis từ Android trực tiếp.
Dưới đây là một số hướng dẫn về làm thế nào để tạo ra một nhà cung cấp nội dung
http://developer.android.com/guide/topics/providers/content-provider-creating.html
http://thinkandroid.wordpress.com/2010/01/13/writing-your-own-contentprovider/
Nếu bạn chọn không để tạo ra một ContentProvider bạn có thể mở rộng AsyncTaskLoader hoặc bộ nạp con trỏ trực tiếp để truy vấn dữ liệu theo cách bạn muốn.
Cảm ơn điều này sẽ giúp ích một chút. – user1681358
Hãy xem thư viện LoaderEx của CommonsWare. Nó cho phép bạn sử dụng một Loader
với một địa phương SQLiteDatabase
, vì vậy bạn không phải đi đến tất cả những bận tâm của việc tạo của riêng bạn ContentProvider
.
Tôi muốn ít nhất có được triển khai ContentProvider của riêng mình, vì nó có vẻ là cách 'chuẩn' để làm mọi thứ ngay cả khi nó dường như bị thổi phồng cho các ứng dụng độc lập nhỏ. Nhưng tôi sẽ xem thư viện này tại một thời điểm nào đó khi tôi hiểu những điều cơ bản. – user1681358
Từ git: 'DỰ ÁN NÀY KHÔNG BỊ TỪ CHỐI. Sử dụng nó có nguy cơ của riêng bạn. Nếu bạn đang duy trì một ngã ba công cộng mà bạn muốn người khác xem xét sử dụng, hãy thêm một vấn đề yêu cầu liên kết đến ngã ba của bạn từ README này. – zeroDivider
- 1. Lỗi khi kéo cơ sở dữ liệu mysql trong cơ sở dữ liệu mysql cục bộ
- 2. Tìm kiếm cơ sở dữ liệu cục bộ cho D2009 +
- 3. Appengine jdoconfig.xml cho cơ sở dữ liệu cục bộ
- 4. Cơ sở dữ liệu để lưu trữ cục bộ
- 5. Cơ sở dữ liệu cục bộ với sơ đồ
- 6. Cách tạo cơ sở dữ liệu ngoại tuyến cục bộ
- 7. Cách lấy dữ liệu từ cơ sở dữ liệu Parse.com
- 8. PDO lấy dữ liệu từ cơ sở dữ liệu
- 9. Dữ liệu mặc định của Kho lưu trữ cơ sở dữ liệu cục bộ
- 10. Magento không lấy chi tiết cơ sở dữ liệu mới
- 11. Lưu trữ cơ sở dữ liệu cục bộ cho các ứng dụng WinRT/Metro
- 12. Hỗ trợ cơ sở dữ liệu Sql cục bộ cho điện thoại Windows 7
- 13. Làm thế nào để triển khai cơ sở dữ liệu MySQL cục bộ cho Heroku
- 14. Làm cho EF sử dụng cơ sở dữ liệu cục bộ trong thư mục App_Data
- 15. Cơ sở dữ liệu cục bộ cho Silverlight, MonoTouch, MonoDroid và Windows Phone
- 16. ViewPager và cơ sở dữ liệu
- 17. Biến toàn cục - kết nối cơ sở dữ liệu?
- 18. URI dữ liệu so với nhị phân trong cơ sở dữ liệu
- 19. Cơ sở dữ liệu cho Python Twisted
- 20. Có thể lấy dữ liệu từ bộ nhớ cục bộ của HTML5 và lưu vào cơ sở dữ liệu máy chủ không?
- 21. Cách tốt nhất để đồng bộ hóa cơ sở dữ liệu SQL Server từ xa với cơ sở dữ liệu SQL Server Compact cục bộ?
- 22. Cơ sở dữ liệu nhúng cho .net
- 23. Sao chép bảng từ một cơ sở dữ liệu sang một cơ sở dữ liệu khác
- 24. đồng bộ hóa hai cơ sở dữ liệu pg
- 25. Tôi nên sử dụng cơ sở dữ liệu cục bộ nào trong ứng dụng Windows 8
- 26. Lỗi khi tách cơ sở dữ liệu SQLite - cơ sở dữ liệu bị khóa
- 27. Không thể thêm cơ sở dữ liệu SQL cục bộ vào dự án VS2010?
- 28. Kết nối với cơ sở dữ liệu SQL Server cục bộ bằng C#
- 29. kết xuất mysql vào tệp cục bộ outfile từ cơ sở dữ liệu từ xa
- 30. Cơ sở dữ liệu cục bộ, tôi cần một số ví dụ
Bạn nên đăng liên kết tới hướng dẫn để hoàn thành – Merlin