2010-07-12 78 views
5

誰能給我解釋一下這個StaleDataException有人能向我解釋這個`StaleDataException`

07-11 19:58:23.298 E/AndroidRuntime(1044): Uncaught handler: thread main exiting due to uncaught exception 
07-11 19:58:23.368 E/AndroidRuntime(1044): android.database.StaleDataException: Access closed cursor 
07-11 19:58:23.368 E/AndroidRuntime(1044): at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:217) 
07-11 19:58:23.368 E/AndroidRuntime(1044): at android.database.AbstractWindowedCursor.getInt(AbstractWindowedCursor.java:84) 
07-11 19:58:23.368 E/AndroidRuntime(1044): at android.database.CursorWrapper.getInt(CursorWrapper.java:128) 

何時以及如何做,我們需要確保光標一個requiry,爲什麼這個異常失敗?

回答

4

您正嘗試從Cursor中檢索已關閉的信息。您必須使用isClosed方法驗證光標是否已關閉。

+0

你可以請我建議我解決這個問題的方式。目前我正在得到很多staleDataException,我無法修復它:( – Bytecode 2014-04-23 06:49:09

1

在CursorAdapter不再需要之前,您無法關閉遊標。所以你可以關閉它在onDestroy()方法:

@Override 
public void onDestroy() { 
super.onDestroy(); 

    //Close the cursor 
    cursor.close(); 
    //Close the database 
    database.close(); 
    } 
0

在我的情況下,我正在關閉onStop()方法的遊標。事實證明,屏幕的旋轉導致此代碼運行,並因此給出StaleDataException。

0

使用Activity.getContentResolver.query()而不是Activity.managedQuery()。因爲​​已被棄用。這個對我有用。

相關問題