Metoda care v-a condus se bazează pe citirea antetelor HTTP. În mod specific, acest antet:
După citirea anteturilor, puteți să eliminați datele în sine, reducând astfel timpul necesar pentru a obține dimensiunea răspunsului în octeți. Aceasta este cea mai bună modalitate de a determina "dimensiunea fișierului".
Un alt lucru este că serverul nu poate fi configurat și astfel ca acest antet să nu fie inclus în corpul de răspuns al serverului și nu va fi posibil să se determine dimensiunea fișierului în acest fel.
Sarcina ta poate fi rezolvată și mai ușor dacă folosești conceptul sumelor hash. - Dacă există o astfel de oportunitate, utilizați-o - deoarece descărcarea de 32 de octeți (mărimea hash-ului) va fi mult mai puțin problematică decât verificarea dimensiunii fișierului. Apropo, mărimea poate rămâne aceeași atunci când unele valori de octeți nu sunt de acord, ceea ce înseamnă că metoda de verificare a integrității va eșua, în timp ce funcția hash va reflecta orice schimbare.
Excepția dvs. este cauzată de faptul că Google este obosit să audă că "Android încetinește". La urma urmei, sistemul în sine este conceput în așa fel încât să nu fie frâne în el. Nu. Problema este că dezvoltatorii neexperimentați neglijează multe caracteristici, ceea ce duce la apariția în GP a unor aplicații necorespunzătoare, care determină impresia că "Android încetinește". Tocmai ați neglijat unul dintre aceste lucruri - folosind multithreading. Funcționarea accesării resurselor de rețea este a priori lungă: instalați handshake TCP în trei pachete și apoi transferați și matricea de date. Prin urmare, este interzisă executarea acestuia în firul UI.