I developing my game using libgdx and libktx. my main game class is:
class MyGame : KtxGame<KtxScreen>() {
val assets = AssetManager()
override fun create() {
addScreen(LoadingScreen(this))
setScreen<LoadingScreen>()
super.create()
}
override fun dispose() {
assets.dispose()
super.dispose()
}
}
I want to restart my game screen after the game is over. for that, I remove the current game screen and add another one.
in my GameScreen.kt:
myGame.removeScreen<GameScreen>()
dispose()
myGame.addScreen(GameScreen(myGame))
myGame.setScreen<GameScreen>()
and dispose method is:
override fun dispose() {
stage.dispose()
super.dispose()
}
I added some actors to this stage.
using this methods I monitoring memory usage:
val javaHeap = Gdx.app.getJavaHeap()/1000000
val nativeHeap = Gdx.app.getNativeHeap()/1000000
but after each time add a new screen (and remove older) about 30 Mb added to ram in Android. in Desktop some times adds nothing some times about 2Mb. for android I tested and ram allocated more than 1Gb after multiple remove and adding another screen.