Điều gì xảy ra nếu bạn không bao giờ đóng kết nối? Tôi biết bạn nhận được trường hợp ngoại lệ nếu bạn không đóng nó và cố gắng mở một số khác, nhưng điều gì sẽ xảy ra nếu bạn có một singleton toàn cầu, và bạn chỉ đơn giản là không đóng nó? Bất kỳ ý tưởng?Không bao giờ đóng kết nối Android SQLite
Trả lời
Rạn nứt được hình thành trong liên tục không gian, đe dọa tuyệt chủng của tất cả sự sống trong vũ trụ, cho đến ngày được cứu bởi một nhóm người trong trang phục vui tươi sáng màu (bao gồm một số với capes, nếu bạn có thể tin được).
Ồ, không, chờ đã. Đó chỉ là một cuốn truyện tranh.
Thực ra, không có gì xảy ra nhiều. Tôi đã được các nhân viên Google và các chuyên gia Android khác bảo rằng, do cách SQLite hoạt động (đặc biệt là việc xử lý các giao dịch), không có gì xấu xảy ra nếu bạn không đóng cơ sở dữ liệu. Trên thực tế, nếu bạn triển khai một nhà cung cấp nội dung, bạn sẽ có hiệu ứng tương tự, vì nhà cung cấp nội dung không được gọi với bất kỳ phương thức nào onDestroy()
, nghĩa là bạn sẽ không bao giờ có cơ hội đóng cơ sở dữ liệu của mình. Nhà cung cấp nội dung sẽ chỉ hoạt động cho đến khi quá trình chấm dứt. Cá nhân, điều này thực sự gây lỗi cho tôi, đó là một trong những lý do tôi cố gắng giảm thiểu việc sử dụng các nhà cung cấp nội dung của mình.
- 1. Popup Không bao giờ đóng
- 2. MQTT Eclipse Paho client trên Android, ngắt kết nối treo và không bao giờ hoàn thành
- 3. ResultSet không đóng khi kết nối đóng?
- 4. Android SQLite đóng ngoại lệ
- 5. Kết nối với Sqlite trong android thông qua Servlet
- 6. Android không bao giờ nhận gói UDP
- 7. OnUpdate KHÔNG BAO GIỜ gọi - Android Widget
- 8. Cách đóng kết nối Sqlite mà không gọi rõ ràng phương thức đóng bằng cách sử dụng .NET
- 9. Kết nối đóng PDO
- 10. gì nếu tôi không đóng kết nối cơ sở dữ liệu SQLite bằng Python
- 11. Kết nối và khóa SQLite
- 12. SqlCommand.Dispose có đóng kết nối không?
- 13. ODP.net có đóng con trỏ khi kết nối đóng không?
- 14. Để đóng hay không đóng một kết nối Oracle?
- 15. Android WifiManager Chủ đề không bao giờ tắt
- 16. Node.js MongoDB đóng kết nối
- 17. Sử dụng đúng Sqlite trên Android (SQLiteOpenHelper, kết nối, chủ đề chính, v.v ...)
- 18. Kết nối SQLite bị rò rỉ mặc dù mọi thứ đã đóng
- 19. Vứt bỏ kết nối hoặc Đóng kết nối
- 20. Android License Test Response - Không bao giờ hoạt động
- 21. OnPageScrollStateChanged của Android ViewPager không bao giờ được gọi là
- 22. psycopg2 với bình, khi đóng kết nối
- 23. Cách đóng kết nối Smtp trong SwiftMailer
- 24. Có bao nhiêu kết nối trong nhóm kết nối ADO.NET
- 25. Tôi nên mở/đóng kết nối Booksleeve của mình bao lâu một lần?
- 26. Khung thực thể đa luồng: Kết nối không được đóng. Trạng thái hiện tại của kết nối đang kết nối
- 27. Android Bluetooth - Không thể kết nối ra
- 28. Android - Có thể sử dụng con trỏ SQLite sau khi đóng cơ sở dữ liệu không?
- 29. Việc đóng kết nối có tự động đóng lệnh và kết quả không?
- 30. Dịch vụ khởi động Android không bao giờ bắt đầu
Nhà cung cấp nội dung là một trong những phần ít được hiểu và bị lạm dụng nhiều nhất của Android. Chúng được đẩy mạnh vào tài liệu hoặc ít nhất là tài liệu ban đầu, nhưng chúng chỉ nên được sử dụng nếu bạn định chia sẻ dữ liệu với ứng dụng của bên thứ ba. Tôi đã nhìn thấy mọi người sử dụng chúng chỉ để serialize DB truy cập, đó là khủng khiếp. Dù sao, tôi figured có một kết nối tĩnh sẽ được sử dụng tốt. Tôi đã làm rất nhiều công việc kiểm tra những gì xảy ra với nhiều kết nối. Tóm tắt, nó xấu: http://www.touchlab.co/blog/android-sqlite-locking/. Làm việc trên một rehash của quản lý kết nối cho ORMLite. Cảm ơn. –
Đó là một bài đăng trên blog tuyệt vời, BTW. – CommonsWare
Bài đăng trên blog đó dường như không tồn tại nữa. Liên kết mới? – John