Я уже установил roomdatabase для исторической активности, и я могу использовать insert methond. теперь, когда я щелкаю свою историю активности, данные все еще отображаются в элементах просмотра повторного использования. но я хочу сбросить данные, когда я выключаю сборку приложения. Как мне это сделать? Кто-нибудь может помочь? В моем DAO вы можете увидеть забавную функцию deleteAll (), так как я могу использовать ее, когда выключаю свое приложение? History.kt
@Entity(tableName = "history")
class History(@PrimaryKey(autoGenerate = true) var id: Long?,
@ColumnInfo(name= "item") var item:String?,
@ColumnInfo(name = "title") var title:String?,
@ColumnInfo(name = "price") var price:Int?,
@ColumnInfo(name = "Image") var Image:String?
) {
constructor(): this(null,"","",0,"")
}
@Dao
interface HistoryDao {
@Query("SELECT * FROM history")
fun getAll(): List<History>
@Insert(onConflict = REPLACE )
fun insert(history: History)
@Query("DELETE from history")
fun deleteAll(): List<History>
}
HistroyDB
@Database(entities = [History::class], version = 3)
abstract class HistoryDB: RoomDatabase() {
abstract fun HistoryDB(): HistoryDao
companion object {
private var INSTANCE: HistoryDB?=null
fun getInstance(context: Context): HistoryDB? {
if (INSTANCE == null) {
synchronized(HistoryDB::class) {
INSTANCE = Room.databaseBuilder(context.applicationContext,
HistoryDB::class.java, "history.db")
.fallbackToDestructiveMigration()
.build()
}
}
return INSTANCE
}
fun destoryInstance() {
INSTANCE = null
}
}
}
HistoryActivity
class HistoryActivity : AppCompatActivity(), SwipeRefreshLayout.OnRefreshListener {
private var historyDb: HistoryDB? = null
private var historyList = listOf<History>()
lateinit var adapter: HistoryitemReclycerViewAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_history)
historyDb = HistoryDB.getInstance(this)
adapter = HistoryitemReclycerViewAdapter(this, historyList)
val r = Runnable {
try {
historyList = historyDb?.HistoryDB()?.getAll()!!
adapter = HistoryitemReclycerViewAdapter(this, historyList)
adapter.notifyDataSetChanged()
swipeRefreshLo.setOnRefreshListener(this)
recyclerview.adapter = adapter
recyclerview.layoutManager = LinearLayoutManager(this)
} catch (e: Exception) {
}
}
val thread = Thread(r)
thread.start()
}
override fun onRefresh() {
swipeRefreshLo.isRefreshing = false
}
override fun onDestroy() {
HistoryDB.destoryInstance()
historyDb =null
super.onDestroy()
}
}