getContentResolver query cause CursorWrapperInner warning

后端 未结 2 835
自闭症患者
自闭症患者 2020-12-19 09:01

On 4.0.3, Code below cause warning \"W/CursorWrapperInner(11252): Cursor finalized without prior close()\".

    Uri uri = Uri.withAppendedPath(PhoneLookup.CO         


        
2条回答
  •  离开以前
    2020-12-19 09:16

    This line of code returns a Cursor object:

    getContentResolver().query(uri, null, null, null, null);
    

    It's odd that you are performing a query but ignoring the result. The only purpose of performing a query is to get the results in a Cursor. You should store that into a variable like so:

    Cursor cursor = getContentResolver().query(uri, null, null, null, null);
    

    Then you can use the cursor to get whatever data you need and when you are done with it call:

    cursor.close();
    

    You can close the cursor in Activity#onDestroy() or earlier, but you must close it before the Activity is completely finished or you will see this warning. This is because a Cursor is backed by memory in another process and you don't want to leak that memory.

提交回复
热议问题