ヒープメモリが1MBを超えると、これらの両方が私のアクティビティをリークしています。1MBを超えるconactsを削除する必要があります。2500以上の連絡先。
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
Cursor cur = managedQuery(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
代替案または回避策は何ですか?それから私はします
if (cur.moveToFirst()) {
do {
String lookupKey = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey);
cr.delete(uri, null, null);
} while (cur.moveToNext());
}
cur.close();
一度に100〜200件の連絡先のみを削除するにはどうすればよいですか?または他の方法?
ログ:
03-02 14:26:57.317: E/CursorWindow(5357): need to grow: mSize = 1048576, size = 216, freeSpace() = 135, numRows = 2616
03-02 14:26:57.317: E/CursorWindow(5357): not growing since there are already 2616 row(s), max size 1048576
03-02 14:26:57.317: E/CursorWindow(5357): The row failed, so back out the new row accounting from allocRowSlot 2615
03-02 14:26:57.317: E/Cursor(5357): Failed allocating fieldDir at startPos 0 row 2615