Как происходит утечка памяти в этом сценарии? - PullRequest
2 голосов
/ 06 марта 2019

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

В MainActivity. Я создаю экземпляр календаря и обновляю миллисекунды в TextView

private lateinit var calendar: Calendar

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    // Example of a call to a native method
    sample_text.text = stringFromJNI()


    statBtn.setOnClickListener{
        calendar = GregorianCalendar.getInstance()
        sample_text.text = calendar.timeInMillis.toString()
    }

}

Когда я запускаю приложение, просто нажмите statBtn, приложение работает нормально (я вижу время обновления в TextView). Однако logcat сообщает следующее

I/zygote64: Do partial code cache collection, code=24KB, data=26KB
I/zygote64: After code cache collection, code=24KB, data=26KB
I/zygote64: Increasing code cache capacity to 128KB
I/zygote64: Do partial code cache collection, code=57KB, data=54KB
I/zygote64: After code cache collection, code=57KB, data=54KB
I/zygote64: Increasing code cache capacity to 256KB

EDIT

Этот код тоже пропускает:

package com.example.blabla.d344

import android.os.AsyncTask
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import kotlinx.android.synthetic.main.activity_main.*
import java.util.*

class MainActivity : AppCompatActivity() {
    private val TAG = "Main Activity"
    //private lateinit var task: LongTask
    private var idx=0
    private lateinit var calendar: Calendar

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // Example of a call to a native method
        sample_text.text = stringFromJNI()
        calendar = GregorianCalendar.getInstance()

        statBtn.setOnClickListener{

            //sample_text.text = calendar.timeInMillis.toString()
        }

    }

    /**
     * A native method that is implemented by the 'native-lib' native library,
     * which is packaged with this application.
     */
    external fun stringFromJNI(): String

    companion object {

        // Used to load the 'native-lib' library on application startup.
        init {
            System.loadLibrary("native-lib")
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...