Android задержка при нажатии кнопок

Рейтинг: 0Ответов: 0Опубликовано: 18.02.2023

Имеется следующая проблема: в приложении на Android Studio кнопки срабатывают с некой задержкой в 100-200мс - как на эмуляторе так и на реальном устройстве. Содержимое кнопки менял на банально вывод текста в textView - всё равно задержка. Подскажите, как с этим бороться?

val calcButtonsText = arrayOf<String>("C", "<", "^", "/", "7", "8", "9", "*", "4", "5", "6", "-", "1", "2", "3", "+", "(", "0", ".", ")")
            val calcButtons = ArrayList<Button>()
            for (i in 1..20) {
                calcButtons.add(findViewById(resources.getIdentifier("calc_button" + i, "id", packageName)))
                val thisButton = calcButtons[i-1]
                
                thisButton.setOnClickListener() { v ->
                    val start = System.currentTimeMillis()
                    vibrator.vibrate(50)
                    val b = v as Button
                    val cursorPos = editText.selectionStart
                        when {
                            b.text in "1234567890." ->  { editText.setText(editText.text.toString().insert(cursorPos, b.text.toString())); editText.setSelection(cursorPos+1) }
                            b.text in "+-*/^"       ->  { editText.setText(editText.text.toString().insert(cursorPos, b.text.toString())); editText.setSelection(cursorPos+1) }
                            b.text in "()"          ->  { editText.setText(editText.text.toString().insert(cursorPos, b.text.toString())); editText.setSelection(cursorPos+1) }
                            b.text == "<"           ->  { if (cursorPos > 0) { editText.setText(editText.text.toString().pop(cursorPos-1)); editText.setSelection(cursorPos-1) } }
                            b.text == "C"           ->  editText.setText("")
                            else                    ->  editText.setText("ERROR")
                        }
                    Log.d("TIME AWAIT", ((System.currentTimeMillis()-start)/1000.0).toString())
                }
            }

На выводе получаю: 0.07 - 0.23

Устройства: Redmi 9 и эмулятор Pixel 5

Ответы

Ответов пока нет.