首页 > 解决方案 > 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)

但它只是把应用程序放到后台,在我把它放回前台后它崩溃了。是否有任何解决方案可以停止一切并开始特定活动而无需一一完成所有后台任务?

标签: javaandroidkotlin

解决方案


您可以尝试使用 commit() 代替 apply() 并获取所有数据是否清除成功的返回值!

这是文档


推荐阅读