Tôi có một cơ sở dữ liệu trung tâm trong ứng dụng của mình mà một vài hoạt động khác nhau cần truy cập.Android/Java: truy cập cùng một đối tượng DB SQLite từ nhiều hoạt động
Tôi có nên chia sẻ đối tượng này bằng cách đặt đối tượng tĩnh không? Ví dụ như trong các hoạt động mà khởi DB Tôi làm điều này:
protected static appDatabase db;
Sau đó, những người khác có thể truy cập nó thông qua FirstActivity.db
.
Một tùy chọn khác là tạo các đối tượng private appDatabase db
trong mọi hoạt động cần nó, nhưng tôi nghi ngờ việc mở nhiều đối tượng db để truy cập cùng dữ liệu được lưu trữ có thể lãng phí.
Tuy nhiên tôi không biết nhiều về java, đó là lý do tôi hỏi - cách tốt nhất để làm điều này là gì và tại sao?
Cảm ơn
Trong ứng dụng của tôi, tôi doesnt sử dụng tĩnh trên các đối tượng như vậy. Có lẽ nó thích, nhưng tôi đã không làm điều đó. Thú vị khi thấy những câu trả lời mà bạn nhận được. –
Bạn có thể sử dụng một singleton? – fge
Tôi thường làm việc với các cơ sở dữ liệu phía sau ContentProvider trong môi trường chuyên nghiệp của mình và tìm thấy rằng chỉ duy nhất một kết nối cơ sở dữ liệu tồn tại (sử dụng mẫu đơn như @fge gợi ý) giúp tôi giải quyết một số vấn đề nhất quán về dữ liệu và tránh sử dụng sai mục đích ngoại lệ ". Tôi tự hỏi làm thế nào các đối số giữ trong một môi trường không ContentProvider và do đó upvoted câu hỏi của bạn. Có lẽ người trả lời câu hỏi của bạn cũng có thể đề cập đến các lợi ích hiệu suất lớn mà chúng tôi có thể mong đợi với nhiều kết nối đơn lẻ như thế nào? : D – baske