Tôi nên sử dụng điều nào sau đây để đảm bảo rằng tất cả các con trỏ đều bị đóng?Thành ngữ để đóng một con trỏ
Cursor c = getCursor();
if(c!=null && c.getCount()>0){
try{
// read values from cursor
}catch(..){}
finally{
c.close();
}
}//end if
OR
Cursor c = getCursor();
try{
if(c!=null && c.getCount()>0){
// read values from cursor
}//end if
}catch(..){
}finally{
c.close();
}
EDIT:
Một vài câu hỏi:
1. Đỗ chúng ta cần phải gọi close() trên một con trỏ đó có tổng số là 0?
2. Bởi vì trong trường hợp đó cho thành ngữ đầu tiên, close() sẽ không bao giờ được gọi. Giả định rằng đối với con trỏ không có phần tử, con trỏ sẽ không bao giờ được mở. Đây có phải là giả định hợp lệ không?
Vui lòng thông báo.
cảm ơn câu trả lời của bạn! –
tôi không nghĩ rằng sử dụng getCount là một phương pháp tốt. nếu bạn sử dụng moveToFirst, bạn có thể nhận được hiệu suất tốt hơn – wangzhengyi
@wangzhengyi - Đó là một điểm di chuyển hợp lệ và có câu trả lời cho câu hỏi "có điều gì trong tập kết quả" ... nhưng OP đã sử dụng getCount() trong ví dụ của họ để tôi tiếp tục ở đây. –