Сегодня я как раз проводил исследование по модернизации нашего собственного Джейка Уортона, поэтому я сделал что-то вроде этого.
RetroClass.getClient().getSomeData(param, new Callback<Model>(){
@Override
public void failure(...){/*blah*/}
@Override
public void success(Model response, Response notUsed)
{
try
{
Thread.sleep(10000);
}
catch(Exception e){e.pST();}
}});
Я ожидал ANR, но поток выполняется нормально, Джейк Уортон упомянул в этом сообщении Выполняет ли Retrofit сетевые вызовы в основном потоке? "Как указано в ответе, если вы используете второй шаблон (последний аргумент в качестве обратного вызова), запрос выполняется асинхронно, но обратный вызов вызывается в основном потоке. По умолчанию Retrofit использует пул потоков для этих запросов».
что обратный вызов выполняется в основном потоке, что здесь происходит, какие-либо идеи? Почему Thread.sleep() не вызывает ANR здесь...? Я сбит с толку....