Hoe kan ik netwerk-i/o doen vanuit een ContentProvider?

Ik heb een ContentProvider die inhoud van documenten serveert die op een server zijn opgeslagen. De inhoud wordt geleverd aan een andere Android-app via een ACTION_VIEW-intentie of aan een WebView via een content://... URI. De ContentProvider bewaart een cache met documenten in de cachemap van de app.

Dit is het probleem. Wanneer de consument om een ​​document vraagt ​​dat niet in de cache staat, moet ik het over het netwerk krijgen. Wanneer ik dit probeer, krijg ik een uitzondering dat netwerktoegang niet is toegestaan ​​in de toepassingsreeks. Ik ben momenteel bezig met dit probleem door de documentgegevens vooraf in een AsyncTask te laden voordat ik het beheer overdraag aan de externe app of browser. Dit werkt meestal, maar is niet helemaal betrouwbaar in randgevallen, zoals wanneer de app wordt geruild en vervolgens opnieuw wordt geladen.

Suggesties?

2

Geen antwoorden

0