• 0
notricky

[XE8] TNetHttpRequest.OnRecieveData в деплое для android вешает приложение

Вопрос

Собственно поступаю я так - передаю по ссылке в процедуру reqReceiveData. 

procedure TFMain.reqReceiveData(const Sender: TObject; AContentLength, AReadCount: Int64; var Abort: Boolean);
begin
  if not PgbUpdate.Visible then
    PgbUpdate.Visible := true;
  PgbUpdate.Max := AContentLength;
  PgbUpdate.Value := AReadCount;
end;

Внутри процедуры соотв создается TNetHttpClient и TNetHttpRequest

В деплое для WIN32 - все работает, показывается прогресс-бар, все скачивается и тд. Однако в деплое для ANDROID при 

function TFMain.RunRequest(AUrl: String = ''; ARespStream: TBytesStream = nil; OnRcvData: TReceiveDataEvent = nil): TJSONObject;
begin
...
  c := TNetHTTPClient.Create(nil);
  r := TNetHTTPRequest.Create(nil);
...
  r.OnReceiveData := OnRcvData; //если закомментировать - все ок. Если нет - то на следующем шаге подвисон.
  resp := r.Get(url, ARespStream);
...
end;

зависает. Если закомментировать присвоение процедуры ресива, то все скачивается (только без прогресса). Процедура используется для всех версий: WIN, IOS, ANDROID,MACOS и работает исправно.

Кто что может сообщить по данному вопросу, вдруг кто сталкивался?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 ответа на этот вопрос

  • 0

сюда никто не заходит или просто нет идей?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Вы хотите сделать отображение прогресса при скачивании файлов?

Вместе со студией идёт демо-проекты, найти можно примерно по такому пути

C:\Users\Public\Documents\Embarcadero\Studio\18.0\Samples\Object Pascal\RTL

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Похожие публикации

    • Автор: Pax Beach
      Коллеги, помогите пожалуйста с поиском решения.

      Есть зал 100x100 метров, 400-600 человек на борту. На их мобильные устройства (смартфоны, планшеты) нужно принимать раз в секунду различный текст ~120 символов в кодировке UTF8. Можно широковещательно, или P2P.
      Сейчас мы выбираем технологию передачи данных в ограниченном помещении большому количеству людей.
      От выбора инфраструктуры, понятно, зависит логика мобильных приложений для этой цели. 
       
      1. Как лучше выстроить инфраструктуру?
      2. Чем лучше рассылать Bluetooth или Wi-Fi (понятно, что GPRS канал в таком скоплении — не вариант, базовая станция не справятся, да и сигнала может не быть)?
      3. Сколько точек доступа и каких лучше разместить?
      4. На какие нюансы обратить внимание?
       
      Сначала я обратился к технологии маячков. Но по многим параметрам маячки здесь не подходят.
      Однако, не исключаю возможность широкого вещания по Bluetooth каналу.
      Так же возможно использовать технологию тетеринг (tethering), раздавать сигнал через смартфоны раскинутые по залу.
      Можно тоже самое организовать, раскидав точки доступа Wi-Fi.
      Преимущества той или иной инфраструктуры для меня не очевидны.
       
      Может кто-то сталкивался с подобными задачами?
      Заранее благодарю за участие в обсуждении.
       
       
       
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу