Mecanism de apel invers

Am o cerință care nu este deloc de rezolvat, cel puțin pentru cineva care nu este la nivel profesional în dezvoltarea Android cred.

Dezvolt un API care stochează solicitarea utilizatorului (GET, PUT, POST, DELETE). Aceste cereri pot fi emise de orice aplicație care utilizează API-ul meu și sunt stocate într-un SQLite DB care aparține aplicației Manager (API-ul expune un furnizor de conținut pentru acest lucru) care se ocupă cu menținerea conturilor utilizatorilor diferiți și așteptarea tuturor cererilor și executarea acestora atunci când există o rețea disponibilă. Fiecare solicitare este asociată proprietarului (ID-ul utilizatorului) și sursei (pachetul App).

Cererile sunt executate atunci când există o acoperire a rețelei care, în contextul meu specific, se va întâmpla în special atunci când aplicațiile care au generat solicitarea sunt dezactivate.

Cererea este executată de un IntentService care este declanșat atunci când este conectată rețeaua.

Acum problema:

Cum poate această IntentService să actualizeze fiecare informație a aplicației folosind logica de afaceri atunci când aplicațiile sunt offline?

M-am gândit să am în clasa de bază API o clasă de bază care ar trebui să fie extinsă de Apps " dezvoltatorii și în acea clasă ar implementa parsarea răspunsurilor HTTP (pe care le primesc pentru ei) în consecință logica lor de afaceri a aplicației. Dar acum, din nou, cum pot invoca acest cod pentru parsarea răspunsurilor din cadrul serviciului meu de intenție care îi aparține aplicația mea de manager.

Vă mulțumim cu toții în avans,

Oleksandr

0
Mulțumită lui Aljosha, această soluție nu se află complet în afara tabelului, dar văd două probleme aici: 1) Când trimit un Broadcast de la ManagerApp/Service, toate aplicațiile care au extins BroadcastReceiver vor primi informațiile, chiar dacă acele informații specifice nu sunt pentru ei, corect? 2) Cand BroadcastReceiver va primi un raspuns la una din cereri, ar trebui sa isi dea seama ce a fost cererea initiala si pentru ce este destinat, iar acest lucru este dificil pentru ca nu vreau ca dezvoltatorii sa mentina informatii despre datele stocate in cache aplicațiile lor (care este rolul Ma
adăugat autor Oleksandr Kruk, sursa
Ok, văd că problema 1) nu este într-adevăr o problemă, folosind Intent # setPackage() Pot să-l restricționez pentru un receptor specific. Dar întrebarea 2) persistă, ce să facă cu un răspuns la solicitarea GET/PUT/POST/DELETE dacă nu am nici o idee despre când l-am generat din care activitate și cu ce scop
adăugat autor Oleksandr Kruk, sursa
Furnizați un BroadcastReceiver abstract care va primi/reacționa conform intenției dvs. specificate, altor aplicații și apoi va difuza intenția respectivă din ManagerApp. Cred că ar trebui să funcționeze.
adăugat autor nullpotent, sursa
Android dezvoltatori, România — Moldova
Android dezvoltatori, România — Moldova
27 participanți

Parteneri: ciupacabra.com, @php_ro, @js_ro, @node_ro iOS: @ro_ios Reguli: https://github.com/js-ro/it-telegram/blob/master/RULES.md