清除所有共享的首选项并将用户转到主要活动之后:
this.getSharedPreferences("userData", 0).edit().clear().apply()
finishAffinity()
startActivity(Intent(this, MainActivity::class.java))
该应用程序崩溃,因为在后台仍存在与首选项相关的几个任务/计时器。在我将用户转到主要活动之前,您怎么能完成所有事情?
我尝试过:
val intent = Intent(Intent.ACTION_MAIN)
intent.addCategory(Intent.CATEGORY_HOME)
startActivity(intent)
但是它只是将应用程序置于后台,在我将其恢复到前台后便崩溃了。有什么解决方案可以仅停止所有操作并开始特定活动,而无需一个接一个地完成所有后台任务吗?
答案 0 :(得分:1)
您可以尝试使用commit()而不是apply()来获取是否成功清除所有数据的返回值!
这里是docs。
答案 1 :(得分:0)
getSharedPreferences("userData", MODE_PRIVATE)
.edit()
.clear()
.apply()
val intent = Intent(this, MainActivity::class.java)
startActivity(intent)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
finishAffinity()
}
在保存数据时,请确保“ useData”相同。