2013-11-25 3 views
1

Я работаю на мягкой клавиатуре, где я успешно заменяю текущую клавиатуру устройства по умолчанию с помощью моей мягкой клавиатуры.
Но проблема в том, что после нескольких использования полная клавиатура стала пустой, а операционная система телефона начала работать очень медленно. Мне пришлось закрыть приложение для клавиатуры, чтобы телефон снова работал правильно.Виртуальная или мягкая клавиатура замедляет скорость ОС

Как я использовал KeyboardView и в клавиатуре, я использовал краску, холст, растровое изображение, которое часто называют ОС.

public void onDraw(Canvas canvas) { 
rect = new RectF(x2+4, y2+4, ((width-4)+(x2+4)), ((height-10)+(y2+4))); 
canvas.drawRoundRect(rect, 3, 3, paint2); 
canvas.drawText(key.label.toString(), x2 + (float)(width * 0.40), y2 + (float)(height * 0.7), paint); 
canvas.drawText(smallAlphaText[index], x2 + (float)(width * 0.15), y2 + (float)(height * 0.30), paint3); 
canvas.drawText(smallBetaText[index], x2 + (float)(width * 0.80), y2 + (float)(height * 0.30), paint4); 
} 

Это небольшой фрагмент кода, показывающий, что на самом деле я использовал.

В основном OnDraw() вызывается снова и снова ОС, так что, хотя я заменил мой экранная клавиатура с клавиатуры по умолчанию он работает на фоне и замедляет скорость устройства

Я думаю, что это вопрос что замедляет скорость моего телефона. Итак, как я могу использовать краску, холст, растровое изображение эффективно, чтобы оно не замедляло мое устройство?

+0

Что касается размещения кода? –

+0

@MisterSmith Я добавил фрагмент кода здесь ... – Aniket

+0

Ну, конечно, есть место для оптимизации в этом фрагменте. Вы можете кэшировать все вычисления, так как результаты будут одинаковыми каждый раз. Но я думаю, что большинство телефонов, даже дрянных, могут хрустнуть эти вычисления без отставания. Проблема должна быть в другом месте. –

ответ

1

Привет, Я нашел проблему, из-за которой мое устройство отстает.

Я звоню в службу из класса активности. Как будто это работает на устройствах новой версии.

Но мое устройство отстает, когда я пытаюсь поменять свое мягкое клавиатурное устройство по умолчанию.

Раньше я пробовал ниже код, который я написал этот код в моем классе деятельности,

Intent intent = new Intent(v.getContext(),SoftKeyboard.class); 
    startService(intent); 
    finish(); 

Как мы можем видеть в выше код, который я пытаюсь запустить службу.

Теперь я просто пропустил первые две строки, так что теперь это системная ответственность для вызова службы.

Смежные вопросы