Android kotlin / java - выход из системы: очистить общие настройки и остановить все процессы в фоновом режиме - PullRequest
0 голосов
/ 06 января 2019

После того, как я очистил все общие настройки и отправил пользователя к основной деятельности:

            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)

но оно просто переводит приложение в фоновый режим, и после того, как я возвращаю его на передний план, оно падает. Есть ли решение, чтобы просто остановить все и начать определенную деятельность, не завершая все фоновые задачи одну за другой?

Ответы [ 2 ]

0 голосов
/ 04 июня 2019
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» совпадает при сохранении данных.

0 голосов
/ 06 января 2019

Вы можете попробовать commit () вместо apply () и получить возвращаемое значение, если все данные были успешно очищены!

Вот документы .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...