Utfør lang kjører operasjoner når du mottar SMS på API <21

stemmer
0

Jeg bygger en app som vil lytte etter innkommende SMS-meldinger, utføre noen potensielt lang kjører operasjoner og sende tilbake et svar hvis noen vilkår er oppfylt.

Jeg har lytte del arbeider ved hjelp av en BroadcastReceiver, men jeg er ikke sikker på hvordan / hvor du skal utføre potensielt lang kjører operasjoner. Den Android Developer Documentation sier at

Etter OnReceive (), kan systemet drepe prosessen til enhver tid å gjenvinne hukommelse, og dermed den avslutter ga støtet til tråden løper i prosessen. For å unngå dette, bør du enten ringe goAsync () (hvis du vil ha litt mer tid til å behandle sendingen i en bakgrunnstråd) eller planlegge en JobService fra mottakeren bruker JobScheduler, slik at systemet vet at prosessen fortsetter å utføre aktiv arbeid.

Og også:

Ringe goAsync () i mottakerens OnReceive () -metoden og bestått BroadcastReceiver.PendingResult til en bakgrunn tråd. Dette holder sendingen aktive etter retur fra OnReceive (). Men selv med denne tilnærmingen systemet forventer at du til slutt med sendingen svært raskt (under 10 sekunder). Det gjør at du kan flytte arbeidet til en annen tråd for å unngå glitching hovedtråden.

Dessuten JobSchedulerer ikke tilgjengelig på API <21.

Så hvordan vil jeg oppnå dette på API 16-20?

Publisert på 19/09/2018 klokken 13:34
kilden bruker
På andre språk...                            


1 svar

stemmer
1

Bare starte en Servicei BroadcastReceiverå gjøre den langvarige drift og sende tilbake resultatet. Du kan bruke en IntentServiceeller en vanlig Service.

Svarte 25/09/2018 kl. 10:22
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more