当ashmem仍然打开时调用MemoryFile.finalize() - 如何处理它 - Android

时间:2013-04-09 04:48:03

标签: android memory

我在SO上看到过有关同一问题的问题,但没有一个问题得到接受。

错误通知究竟是什么?为什么会这样?

我的应用程序中只有少量游标,并且在完成工作后我确实将它们关闭了。但错误仍然显示出来。可能是什么原因?

这是代码:::

private String fetchContactIdFromPhoneNumber(String phoneNumber) {
    // TODO Auto-generated method stub

    Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI,
            Uri.encode(phoneNumber));
    Cursor cFetch = getContentResolver().query(uri,
            new String[] { PhoneLookup.DISPLAY_NAME, PhoneLookup._ID },
            null, null, null);

    String contactId = "";


    if (cFetch.moveToFirst()) {

        cFetch.moveToFirst();

            contactId = cFetch.getString(cFetch
                    .getColumnIndex(PhoneLookup._ID));

    }

    //System.out.println(contactId);
    if(cFetch != null)
    {
        cFetch.close();
    }
    return contactId;       

}


public Uri getPhotoUri(long contactId) {
    ContentResolver contentResolver = getContentResolver();

    Cursor cursor;
    try {
        cursor = contentResolver
                .query(ContactsContract.Data.CONTENT_URI,
                        null,
                        ContactsContract.Data.CONTACT_ID
                                + "="
                                + contactId
                                + " AND "

                                + ContactsContract.Data.MIMETYPE
                                + "='"
                                + ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE
                                + "'", null, null);

        if (cursor != null) {
            if (!cursor.moveToFirst()) {
                return null; // no photo
            }
        } else {
            return null; // error in cursor process
        }

    } catch (Exception e) {
        e.printStackTrace();

        return null;
    }


   if(cursor != null)
   {
       cursor.close();
   }

    Uri person = ContentUris.withAppendedId(
            ContactsContract.Contacts.CONTENT_URI, contactId);
    return Uri.withAppendedPath(person,
            ContactsContract.Contacts.Photo.CONTENT_DIRECTORY);
}

这是我使用游标的代码。我还有一个contentresolver对象。我也应该关闭它吗?

最后,应用程序对此错误的影响是什么,因为它似乎不会中断应用程序的执行。

0 个答案:

没有答案