Fix a bug where the UserDictionary may not be released

Bug: 5547357
Change-Id: I521afeaa349c86fb0087cedb70127de6acebec78
This commit is contained in:
Jean Chalard 2011-11-04 22:59:57 +09:00
parent f8b9e7ebeb
commit 8b9c89aee2

View file

@ -179,8 +179,9 @@ public class UserDictionary extends ExpandableDictionary {
new Thread("addWord") { new Thread("addWord") {
@Override @Override
public void run() { public void run() {
Cursor cursor = null;
try { try {
final Cursor cursor = client.query(Words.CONTENT_URI, PROJECTION_ADD, cursor = client.query(Words.CONTENT_URI, PROJECTION_ADD,
"word=? and ((locale IS NULL) or (locale=?))", "word=? and ((locale IS NULL) or (locale=?))",
new String[] { word, mLocale }, null); new String[] { word, mLocale }, null);
if (cursor != null && cursor.moveToFirst()) { if (cursor != null && cursor.moveToFirst()) {
@ -201,6 +202,9 @@ public class UserDictionary extends ExpandableDictionary {
// If we come here, the activity is already about to be killed, and we // If we come here, the activity is already about to be killed, and we
// have no means of contacting the content provider any more. // have no means of contacting the content provider any more.
// See ContentResolver#insert, inside the catch(){} // See ContentResolver#insert, inside the catch(){}
} finally {
if (null != cursor) cursor.close();
client.release();
} }
} }
}.start(); }.start();