なぜこれが起こっているのかわかりませんが、アクティビティに戻ると、アプリで「閉じられたカーソルへのアクセス」エラーが発生します。
エラーの原因となっているコードは次のとおりです。
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();
}
これは正しいです?私はそれを正しくしていませんか?どんな助けでも素晴らしいでしょう。