Android: в каждом потоке может быть создан только один Looper

У меня проблема с лупером Android. У меня есть класс, который расширил AsynTask. Внутри метода doInBackground() у меня есть Looper.prepare() и некоторый код ниже.

Он работает хорошо и хорошо в первый раз, но после этого выдает исключение «Только один Looper может быть создан для каждого потока».

Кажется, есть какое-то решение для использования Looper.quit(), но я не могу его реализовать.

Любая помощь будет оценена.


person viv    schedule 08.10.2010    source источник
comment
Мне кажется, что Looper.quit() - это то, что вам здесь нужно. В документации Android API четко указано, что обязательно вызовите loop() после вызова этого метода и завершите его вызовом quit().   -  person onlygo    schedule 08.10.2010
comment
Что вы имеете в виду, говоря, что я не могу это реализовать?   -  person methode    schedule 08.10.2010
comment
Я имею в виду, что я не могу найти quit() внутри Looper. Он показывает getMainLooper, myLooper(), loop(), myQueue(), prepare(), prepareMainLooper(), но не quit().   -  person viv    schedule 08.10.2010


Ответы (2)


Пытаться...

Looper.getMainLooper().quit();
person sasykes    schedule 16.06.2011

Просто добавьте следующую проверку.

 if (Looper.myLooper() == null)
     Looper.prepare();
person Aown Raza    schedule 01.09.2015
comment
stackoverflow.com/questions/23038682/ - person Aown Raza; 01.09.2015