Я знаю, что воскрешаю мертвую нить, но есть еще одна дополнительная оптимизация, которую вы можете добавить к этому, которая ограничивает создание строки одноразовым и, таким образом, запускает сборщик мусора только один раз в начале, а не во время игры (что очень важно для игры на андроид).
Где-то в начале вашей игры (onCreate, onResume, как часть синглтона при запуске приложения и т. д.) создайте большую строку [], которая может содержать максимумсчет (моя игра заполняет массив 10000, поэтому максимальный счет будет 9999).Затем зациклите его с помощью цикла for, заполняя каждый индекс String.valueOf (i).
for (int i = 0; i <scoreStrings.length; i++)
{
scoreStrings[i] = String.valueOf(i);
}
Теперь, когда вам нужно нарисовать счет, просто используйте int, который вы используете, чтобы сохранить счетв качестве индекса для этого массива и «эй, presto!», вы получите правильную строку для вашего счета.
canvas.drawText(scoreStrings[score], x, y, paint);