@foonfyrick

Утечка памяти, объекты не удаляются?

После создания базы данных, я проверяю, удалились ли объекты, и они не удаляются, все функции в Dao висят в профайлере, 11 объектов не удалено, даже когда я закрыл базу данных в onStop, ничего не изменилось, когда я присвоил всем переменным null, ничего не изменилось, как висело 11 объектов, так и висят, я создал новое приложение, и написал
var context:Context? = null
context= this.applicationContext

Нигде ссылки не обнуляю, проверяю, в профайлере ни одного объекта нет, я пробовал создавать слушатели, не обнуляя их, и все равно, в профайлере ни одного объекта нет.
Я прочитал, что если ссылка на объект остается, то объект не удаляется, но тут же ситуация обратная, не зависимо чему равна переменная null или объекту, установлен слушатель на кнопку или равен null, все удаляется, но как только я создаю базу данных, ни один из объектов не удаляется. Почему?
Ниже я создал просто рандомные ссылки, создал слушатель, ничего не обнуляю, утечки нет.
class MainActivity : AppCompatActivity(),View.OnClickListener {
    var context:Context? = null
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        context= this.applicationContext
        button.setOnClickListener(this)
        val a = Test()
        val a2 = Test()
        a.a=4
        a2.b=5
    }

    override fun onClick(v: View?) {
        startActivity(Intent(this,MainActivity2::class.java))

    }
}
  • Вопрос задан
  • 206 просмотров
Решения вопроса 1
@WaterSmith
Android-разработчик. Java, Kotlin
Для начала проверьте правильно, есть ли утечка. Ссылок не должно оставаться после того как отработает сборщик мусора. Что и как делать для поиска утечек памяти, очень хорошо описано в этой статье:
https://habr.com/ru/company/sebbia/blog/243537/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы