我不确定为什么会发生这种情况,但是当我返回活动时,我的应用程序中出现“访问关闭光标”错误。
这是导致错误的代码:
public class TickClass extends TimerTask
{
private int columnIndex;
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (_index == 1) {
columnIndex = cursor.getColumnIndex(MySQLiteHelper.COLUMN_IMAGE_2);
_index = 2;
}
else {
columnIndex = cursor.getColumnIndex(MySQLiteHelper.COLUMN_IMAGE_1);
_index = 1;
}
String image_1 = cursor.getString(columnIndex);
image_1 = image_1.replace(".png", "");
int resourceId = getResources().getIdentifier(getPackageName() + ":drawable/" + image_1, null, null);
image_1_view.setImageDrawable(getResources().getDrawable(resourceId));
}
});
}
}
更具体地说,这String image_1 = cursor.getString(columnIndex);
条线是 Eclipse 所说的导致它的原因。
现在我有以下代码,当活动离开时,我用它来关闭 3 个游标:
@Override
protected void onPause() {
cursor.close();
cursorCurrent.close();
cursorPrevious.close();
datasource.close();
super.onPause();
}
@Override
public void onDestroy() {
cursor.close();
cursorCurrent.close();
cursorPrevious.close();
datasource.close();
super.onDestroy();
}
这个对吗?我做的不对吗?任何帮助都会很棒。