这两个都在泄漏我的活动,当它超过1mb的堆内存时。我需要删除超过1mb的数据,我,e; 2500以上的联系人。getContentResolver()。查询问题
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
的ArrayList oparray =新的ArrayList (); \t \t // ArrayList oparray = new ArrayList; \t \t ContentProviderOperation.Builder objBuilder = ContentProviderOperation.newDelete(ContactsContract.Contacts.CONTENT_URI); \t \t objBuilder.withYieldAllowed(true); \t \t //objBuilder.withExpectedCount(12); \t \t ContentProviderOperation obj = objBuilder.build(); \t \t oparray.add(obj); \t \t \t \t oparray.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI) \t \t \t \t .build()); –
ToolFan
2012-03-05 18:28:21
Plus ContentProviderResult [] res = getContentResolver()。applyBatch(ContactsContract.AUTHORITY,oparray);' – ToolFan 2012-03-05 18:36:57
这不会删除任何联系人。 – ToolFan 2012-03-05 18:37:20