Android在特定时间后自动删除记录

时间:2016-12-23 08:27:25

标签: android android-sqlite

我正在创建一个Android应用程序,我将收到短信并将其存储在SQlite数据库中。我已经实现了数据库功能,即插入,更新,删除和显示等。这是我的代码:

public void addRecord(String number){
    ContentValues values = new ContentValues();
    values.put(COLUMN_BLOCKEDLIST, number);
    SQLiteDatabase db = getWritableDatabase();
    db.insert(TABLE_BLOCKEDLIST, null,values);
    db.close();
}

//delete record from database
public void deletRecord(String nummber){
    SQLiteDatabase db = getWritableDatabase();
    db.execSQL("DELETE FROM " + TABLE_BLOCKEDLIST + " WHERE " + COLUMN_BLOCKEDLIST + "=\"" + nummber + "\";");
    db.close();
}

//show all records from database

public String showAllRecords(){
String allRecords = "";
    SQLiteDatabase db = getWritableDatabase();
    String query = "SELECT * FROM " + TABLE_BLOCKEDLIST + " WHERE 1";
    Cursor cursor = db.rawQuery(query, null);
    cursor.moveToFirst();
    while (cursor.moveToNext()){
        allRecords += cursor.getString(0) + "\n";
    }
    db.close();
return allRecords;
}

现在我需要在功能上删除插入时间24小时后的每条短信。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

当你收到sms获取当前时间然后减去当前时间的24小时(获取时间值)。然后在该值的时间之前执行删除操作。(写代码SMS onreceive方法)。

多数民众赞成。当你收到短信时它会自动删除24小时之前的旧信息。如果有几天你没有收到任何短信,那么它就不会被删除所以在应用程序活动中调用相同的方法代码也会创建..

答案 1 :(得分:0)

那么,当您创建插入的Date实例时,可以在TABLE_BLOCKEDLIST数据库中插入INSERTION_TIME列,并将其与当前日期进行比较。如果超过24小时,请将其删除。 如果您在24小时内收到两次或更多次,则可以在调用方法addRecord,deleteRecord或showAllRecords时进行此检查。 如果您希望您的应用程序检查数据库中的这些记录,比如说,5分钟,您可以创建一个长期运行的服务来实现此功能(BroadcastReceiver)。