java - Android kotlin / java - 注销:清除共享首选项并在后台停止所有进程
问题描述
在我清除所有共享首选项并将用户发送到主要活动后:
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)
但它只是把应用程序放到后台,在我把它放回前台后它崩溃了。是否有任何解决方案可以停止一切并开始特定活动而无需一一完成所有后台任务?
解决方案
您可以尝试使用 commit() 代替 apply() 并获取所有数据是否清除成功的返回值!
这是文档。
推荐阅读
- android-studio - dart 命名构造函数的 IntelliJ 实时模板:列出类的字段
- jquery - datetimepicker 字段的问题
- php - c++中如何在进程之间建立双向通道?
- node.js - 在 MongoDB (Nodejs) 中批量保存/更新数据列表
- php - Laravel 迁移 SQLSTATE[HY000] [2002] 连接被拒绝
- angular - Angular 8 递归形式
- swift - 分段错误:11 swift Xcode 10.2.1
- python - 将字符串转换为 numpy.ndarray python
- r - Ifelse 返回 NAs 而不是 false 值
- node.js - 如何在 Windows 10 上为 laravel 安装 npm 并解决这个问题?