Я разрабатываю приложение, которое реализует EditField, в котором вы можете вводить слово, и при наборе приложение отфильтровывает содержимое, отображаемое на экране.
Для этого я начинаю новый поток, когда пользователь печатает. Этот поток извлекает информацию из таблицы SQLite и затем отображает ее в пользовательском интерфейсе.
Я использую SQLite для других целей приложения, и каждое утверждение прекрасно работает.
ПРОБЛЕМА заключается в том, что когда я использую метод Statement.prepare () в потоке фильтрации, он зависает!
Чтобы сделать это проще, предположим, что пользователь только набрал 1 букву в EditField.
Идея кода выглядит примерно так:
Я запускаю тему после того, как пользователь набрал письмо:
mThread = new Thread(){
public void run(){filtrarListaRecolecciones();}
};
mThread.setPriority(Thread.MAX_PRIORITY);
mThread.start();
А у filtrarListaRecolecciones я запускаю:
mStatement = mBD.createStatement("SELECT COUNT(*) FROM Recolecciones WHERE Nombre LIKE '%a%' AND Status=3");
mStatement.prepare();
И поток зависает в операторе prepare.
Раньше он получал результат примерно через 1 минуту, но теперь просто зависает.
Таблица содержит только 1 запись, поэтому этого не должно быть.
Любая помощь будет принята с благодарностью!
Спасибо!