Просто для того, чтобы четко указать что-то явно:
Основной поток - это в основном поток пользовательского интерфейса.
Так что, говоря, что вы не можете выполнять сетевые операции в основном потоке, вы не можете создавать сети операции в потоке пользовательского интерфейса, что означает , вы не можете выполнять сетевые операции в блоке *runOnUiThread(new Runnable() { ... }*
внутри некоторого другого потока.
(у меня был только длинный момент царапин на голове пытаясь понять, почему я получал эту ошибку где-то, кроме моего основного потока. Вот почему, этот поток помог, и, надеюсь, этот комментарий поможет кому-то другому.)
Вы можете добавить такую функцию на ImapMailbox.php:
public function searchMailsSorted($imapCriteria = 'ALL') {
$this->checkConnection();
$mailsIds =imap_sort($this->mbox,SORTDATE,1,SE_UID,$imapCriteria,$this->serverEncoding);
return $mailsIds ? $mailsIds : array();
}
И затем использовать ее в своем коде следующим образом:
foreach($mailbox->searchMailsSorted('ALL') as $mailId)
{
///insert code here
}