7
Mã của tôi là như dưới đây:Con trỏ sẽ vẫn còn hoạt động sau khi cơ sở dữ liệu bị đóng?
Cursor getResults() {
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor c = qb.query(db, projection, null, null,
null, null, null);
db.close();
return c;
}
Câu hỏi của tôi là, sau khi db.close() được thực thi, là con trỏ c vẫn còn sống và điều hướng?
Cảm ơn.
Sau đó, tôi không biết khi nào nên đóng cơ sở dữ liệu, vì con trỏ được trả về để sử dụng bởi các hoạt động khác. Bất kỳ đề xuất? – Kai
Cách dễ nhất, và có lẽ là an toàn nhất để xử lý các truy vấn cơ sở dữ liệu là mở nó, lấy dữ liệu bạn cần, đóng con trỏ, đóng cơ sở dữ liệu, sau đó trả về các kết quả được yêu cầu. Các con trỏ chỉ có nghĩa là duyệt qua các kết quả truy vấn cơ sở dữ liệu. Bạn thường không muốn kết nối liên tục. Trong trường hợp này, bạn có thể đặt kết quả trong một bộ sưu tập của một số loại và trả lại điều đó. – DeeV