2015-08-08 3 views
1

Я использую наблюдателя текста, чтобы показать пользователю список прогнозов местоположений google, каждый раз, когда пользователь вводит символ, asyncTask начинает получать новое предсказание, но когда пользователь вводит слишком быстро, все асинхронные задачи запускаются и будут показывать множественные лагги.Избегайте множественной AsyncTask при вызове автозаполнения google places

Мой вопрос здесь, могу ли я отменить старые asyncTasks и вызвать только один с последним типизированным символом?

+1

Можете ли вы показать нам текущий код, который вы используете? Затем мы можем посоветовать об изменениях, основанных на этом. Но в основном вам просто нужно сохранить ссылку на последнюю «AsyncTask» и вызвать «cancel()» перед тем, как начать новую. – torque203

+0

Спасибо @ torque203 .. Я отправил код с правильной реализацией. – hhyari

ответ

2

я, наконец, удалось сделать правильный ответ .. спасибо @ torque203

Я инициализируется Google Places метод AsyncTask в начале класса следующим образом

private GooglePlaces GP = null; 

, а затем ..

if (GP != null) { 
     GP.cancel(true); 
     GP = new GooglePlaces(); 
     GP.execute(sb.toString()); 
    } else { 
     GP = new GooglePlaces(); 
     GP.execute(sb.toString()); 
    } 
Смежные вопросы