Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android数据库游标返回错误的结果_Android_Database_Sqlite_Cursor_Alarmmanager - Fatal编程技术网

Android数据库游标返回错误的结果

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

我有一个闹钟应用程序,我正在尝试制作一个方法,删除所有已经设置的闹钟,并从数据库中删除所有记录

使用此方法,我在设置报警时检索挂起意图的RequestCode:

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我真的不知道。但我知道总有更好的办法。