背景
开发app时,有个界面使用了RecyclerView来展示多条数据,并且是以插入数据的先后顺序来展示。所以,在存入数据库时,最好也是以插入的先后顺序来存储。但是SQLite数据库默认不是按插入顺序排序,而是根据主键升序排序。如果在插入时不指定主键primary key,则会随机分配id,也达不到我想要的效果。
因此,这里提供一种解决思路:在数据库的表中增加一个插入时间属性。插入每条数据时,同时记录插入时的时间。在查询数据时,就按照插入时间升序排序即可。
一、数据库表增加insertTime属性
PersonDatabaseHelper.kt
import android.content.Context
import android.database.sqlite.SQLiteDatabase
import android.database.sqlite.SQLiteOpenHelper
class PersonDatabaseHelper(val context: Context, name: String, version: Int) :
SQLiteOpenHelper(context, name, null, version) {
private val createPerson = "create table Person (" +
"id integer primary key," +
"callId text," +
"name text," +
"image Blob," +
"callFree boolean," +
"insertTime text)" // 插入时间属性
override fun onCreate(db