Android数据库游标返回错误的结果
我有一个闹钟应用程序,我正在尝试制作一个方法,删除所有已经设置的闹钟,并从数据库中删除所有记录 使用此方法,我在设置报警时检索挂起意图的RequestCode:Android数据库游标返回错误的结果,android,database,sqlite,cursor,alarmmanager,Android,Database,Sqlite,Cursor,Alarmmanager,我有一个闹钟应用程序,我正在尝试制作一个方法,删除所有已经设置的闹钟,并从数据库中删除所有记录 使用此方法,我在设置报警时检索挂起意图的RequestCode: public static void CursorRQ() { Cursor cursor; Integer cursorRQ; cursor = DatabaseManager.getAllData(); cursor.moveToFirst(); if (!cursor.isAfterLast
public static void CursorRQ() {
Cursor cursor;
Integer cursorRQ;
cursor = DatabaseManager.getAllData();
cursor.moveToFirst();
if (!cursor.isAfterLast()) {
do {
cursorRQ = cursor.getInt(0);
if (cursorRQ >= RQ) {
RQ = RQ + 1;
}
}
while (cursor.moveToNext());
}
cursor.close();
}
现在,取消和所有操作都非常有效,直到我使用以下命令删除数据库表:
public static void deleteAll() {
db.delete(TABLE_NAME, null, null);
}
当我开始设置新的警报时。它们设置了正确的请求代码(从1开始),然后在每个新警报中设置+1,但当我再次尝试取消所有警报时,此方法:
Cursor cursor = DatabaseManager.getAllData();
cursor.moveToFirst();
int IDRQ = cursor.getInt(0);
while(cursor.moveToNext()) {
IDRQ = cursor.getInt(0);
}
用起始数字填充光标,就好像我从未从数据库中删除过值一样
例如,我设置了3个警报,它们得到请求代码1、2、3。我将它们全部删除,它们被删除并完全取消,然后我设置了新的报警,它们再次设置为1、2、3,但当我取消它们时,该方法将取消带有请求号4、5、6的挂起意图,就像我从未删除记录一样。如果您有整数主键,它将自动变为自动递增。如果只清除表,则不会重置自动增量索引。你不是真的把桌子扔了,只是把里面的东西扔了。我想你是对的。那么我如何成功地放下桌子?你为什么要放下桌子?为什么不在请求代码中使用唯一的ID?@323go我真的不知道。但我知道总有更好的办法。