Notificările push nu sunt primite. Notificări push - ce sunt acestea? Cum să activați și să dezactivați notificările push? Puncte tehnice: așteptare și actualizare

în lume tehnologia de informație Doar o mică parte din toate invențiile este folosită. Dar majoritatea lucrurilor sunt dezvoltate tocmai pentru a ne ușura viața. Este una dintre aceste îmbunătățiri despre care vom vorbi în articol. Acestea sunt notificări push. Ce sunt și unde pot fi folosite? Notificări push - ce sunt acestea? iPhone, Android, telefoane cu caracteristici - unde sunt configurate și cum să le activați/dezactivați?

Meet - Notificări push

Care este numele notificărilor pop-up scurte care apar pe ecrane tehnologie senzorială(tablete, telefoane) și raportați actualizări importanteși evenimente. Dacă se dorește, ele pot fi folosite ca o simplă formă de dialog între vânzător și cumpărător, ceea ce a dus la utilizarea lor pe scară largă în domeniul marketingului.

Deci, dacă luăm în considerare opțiunea cu o aplicație, atunci sarcina principală aici este de a informa despre actualizări, conținut nou (sau doar un memento că nu a fost folosit de mult timp). Cum se fac notificări Push pentru o aplicație? Pentru a face acest lucru, trebuie să utilizați interfața de programare a aplicației care există pentru un anumit telefon (de fapt, pentru sistemul de operare utilizat).

Motivul apariției acestei tehnologii a fost dorința specialiștilor de a sprijini cercul de utilizatori ai dezvoltărilor lor. Configurarea notificărilor Push nu este dificilă. Sfârșitul articolului conține informații despre caracteristicile de activare/dezactivare a acestora pe diferite sisteme de operare.

Opțiuni pentru utilizarea notificărilor push

Unde poate fi folosită această tehnologie? Să ne uităm puțin la statisticile cu care se pot lăuda notificările Push. Ce ne va oferi acest lucru, vom lua în considerare mai târziu. Aşa:

  1. Cel mai mult (41%) sunt folosite pentru a notifica despre lansarea de noi aplicații sau actualizări ale celor existente.
  2. Apoi (24%) există un newsletter despre oferte speciale.
  3. Pentru a informa despre conținut nou care a apărut în program, acesta este utilizat în 14% din cazuri.
  4. Cele mai puțin vizate (12%) sunt folosite pentru a trimite reclame și/sau link-uri de recomandare.
  5. Restul de 9% provin din alte tipuri de informații.

Dacă nu primiți notificări Push de la cei la care vă abonați și nu s-a schimbat nimic în setări, asta nu înseamnă că nu se vor întâmpla deloc. Poate că cauza problemei a fost pur și simplu o defecțiune a conexiunii. Dacă sunteți dezvoltator, atunci ceva a fost configurat incorect în aplicațiile în sine.

Noul canal de marketing

Înainte de a vedea cum să interacționați cu această tehnologie din perspectiva unui utilizator, permiteți-mi să petrec puțin mai mult timp vorbind despre conceptul de notificări push în marketing. Când utilizați o astfel de dezvoltare, trebuie să aveți grijă să nu depășiți linia fină care separă cooperarea de intruziv. Dacă aceste rânduri sunt citite de un marketer sau de o persoană care primește o educație adecvată, ar trebui să vă amintiți că în acest fel informatii pretioase, care se va reflecta pozitiv asupra interacțiunilor ulterioare.

Notificările push trebuie să conțină în timp util și conținut relevant. Deci, într-o aplicație care se adresează copiilor, reclamele pentru cafea va fi foarte deplasată, ceea ce, la rândul său, va duce cel mai probabil la o pierdere a popularității.

Exemplu de utilizare

Este popular să folosiți o astfel de tehnologie pentru a notifica pe scurt prietenii despre acțiunile lor. Având în vedere acest lucru, putem aminti Twitter, care își informează utilizatorii despre modificările care apar în profilurile prietenilor.

Unele companii folosesc GPS-ul pentru a determina unde se află clienții lor și dacă sunt în apropiere priza, trimit o notificare corespunzătoare. Este important să primiți mesajul în timp util. Caracteristica de implementare este că notificările Push nu necesită acces la Internet, deoarece adesea toate informatiile necesare stocate în aplicația în sine (de obicei).

Caracteristici de utilizare

Deci, dacă ați decis să utilizați notificările push ca parte a planului dvs. de marketing, atunci ar fi o idee bună să vă asigurați că îndeplinesc următoarele condiții:

  1. Conținutul furnizat trebuie să fie actual și relevant.
  2. Ar trebui să existe o opțiune de dezabonare.
  3. Este recomandabil să vă conectați la rețelele sociale, astfel încât utilizatorii să aibă posibilitatea de a discuta.
  4. Ar trebui să vă alegeți politica cantitativă cu înțelepciune - nimeni nu vrea să primească 20 de notificări pe zi.

Acum puteți trece la activare tehnologie similară. Pentru ușurință de înțelegere, procedura va fi împărțită în funcție de sistemul de operare pe care este instalat dispozitiv mobil. Deci, cum configurezi notificările push?

Android

Acesta este cel mai popular sistem de operare, care și-a primit statutul datorită distribuției sale gratuite și îmbunătățirii constante. Cum sunt activate/dezactivate notificările push pe el? Pentru a-l dezactiva, trebuie să efectuați o serie de acțiuni în această ordine:

  1. Accesați setările telefonului dvs.
  2. Accesați contul dvs., apoi la notificări și acolo veți vedea informații despre Push.
  3. Selectați setările dorite, restricțiile privind primirea - în general, faceți totul așa cum doriți.

Dar ce ar trebui să faceți dacă doriți să activați/dezactivați notificările Push nu pentru toată lumea, ci doar pentru o aplicație? Există și un algoritm pentru acest caz:

  1. Accesați setări.
  2. Accesați un element precum „Notificări”.
  3. Toate instalate pe atingeți telefonul aplicație și ar trebui să selectați articolul dvs. făcând clic pe el.
  4. Dezactivați sau activați funcția de primire a mesajelor din acest program.

După cum puteți vedea, nu este nimic complicat în efectuarea acestor acțiuni și acest lucru nu este numai sistem de operare„Android”. Notificările push pot fi activate/dezactivate pe alte dispozitive cu aceeași ușurință.

iPhone și iPad

Cum să-l porniți aici și iPad-ul nu diferă în niciun fel fundamental. Operațiunile cu această tehnologie vor fi discutate aici. principiul anterior. Deci, pentru a dezactiva sau a activa mesajele primite de la anumite programe, trebuie să efectuați următoarea secvență de acțiuni:

  1. Du-te la ecranul de start dispozitivul dvs. și găsiți un buton care arată ca un cerc dublu, în care există un prototip al unui drum divergent în două direcții la un unghi de 90 de grade.
  2. Găsiți butonul „Notificări”, apoi aplicația care vă interesează.
  3. Lângă elementul „Permite notificări”, veți vedea un buton situat în glisor. Pentru a activa/dezactiva notificările, faceți clic pe el. Dacă este alb, înseamnă că primirea mesajelor este activată în acest moment interzis. În cazul în care butonul are verde, primiți deja notificări de la acest program.

Cum pot dezactiva astfel de mesaje complet? Pentru a face acest lucru, efectuați următoarea secvență de acțiuni:

  1. Accesați setări.
  2. Accesați contul dvs.
  3. Accesați notificări.
  4. Accesați secțiunea Push.
  5. Configurați în funcție de propriile dorințe.

Iată cum să activați notificările push pe iPhone. Având în vedere că setările lor nu se schimbă foarte vizibil, problemele cu modificarea parametrilor sunt activate versiuni diferite nu ar trebui să apară.

Telefon multifunctional

Trebuie remarcat faptul că, în acest caz, puteți lucra doar cu notificările Push anumite modele, Și practică largă aplicatii această funcție Nu l-am cumpărat de aici. Dar dacă sunteți proprietarul unui astfel de echipament, atunci vă sugerăm să vă familiarizați cu cum să activați/dezactivați un astfel de supliment pentru telefon. Vă rugăm să rețineți că calea poate varia în funcție de model, așa că dacă nu găsiți ceea ce aveți nevoie datorită instrucțiunilor din articol, ar trebui să căutați în alte locuri:

  1. Din ecranul de pornire, atingeți Meniu.
  2. Selectați Setări și căutați Notificări push. Acestea pot fi plasate într-un submeniu separat sau localizate în „Setări telefon sau comunicare”.
  3. Configurare această tehnologie dupa gustul tau.

Concluzie

Așa că ne-am uitat la notificările Push, ce sunt acestea și de ce sunt necesare. În cele din urmă, să ne amintim punctele pierdute anterior. Notificările push sunt destul de valoroase din perspectiva marketingului și, atunci când sunt utilizate cu înțelepciune, pot aduce beneficii semnificative unei afaceri și pot face viața mai ușoară pentru consumatori. Dar în orice ar trebui să aderați la mijlocul de aur.

Notificările push sunt, de asemenea, valoroase, deoarece chiar dacă o anumită aplicație nu necesită trimiterea constantă de informații în numele ei, aceasta poate fi folosită în scopuri publicitare, oferind o oportunitate altor dezvoltatori sau întreprinderi (companii) de a informa utilizatorii despre evenimente noi. Dar în acest caz, este important să se țină cont de caracterul actual al informațiilor furnizate.

Ați încetat să mai primiți notificări de la o anumită aplicație (sau toate odată) pe iPhone și iPad? În acest manual am vorbit cel mai mult despre moduri eficiente remediați această eroare.

Conectați-vă din nou cu ID-ul Apple

Primul lucru de făcut dacă întâmpinați probleme la primirea notificărilor pe iPhone sau iPad este să vă conectați din nou la ID-ul Apple. Pentru a face acest lucru, accesați meniul „ Setări» → « iTunes StoreŞi App Store ", faceți clic pe Apple ID și în fereastra care se deschide selectați " Deconectați-vă" Apoi, pe aceeași pagină trebuie să faceți clic pe „ Log in» și indicați informațiile contului dvs Înregistrările Apple ID.

Reconectați dispozitivul la iCloud

De asemenea, merită să vă deconectați și să vă conectați din nou la contul dvs. înregistrare iCloud. Pentru a face acest lucru, accesați meniul " Setări» → iCloud iar în partea de jos a paginii faceți clic pe „ Deconectați-vă" Apoi conectați-vă la iCloud din nou pe aceeași pagină.

Forțați repornirea dispozitivului

Cei doi pași anteriori s-ar putea să nu ajute imediat, ci numai după ce ați făcut dur reporniți iPhone-ul sau iPad. Țineți apăsat butoanele Acasă(Butonul de reducere a volumului pe iPhone 7/7 Plus) și Nutriţieși țineți-le apăsat până când sigla Apple apare pe afișaj. După pornirea dispozitivului, problema cu primirea notificărilor ar trebui să dispară.

Rețineți că în unele cazuri repornire forțată ajută la rezolvarea problemei eroare software de la sine.

Mod alternativ

Pentru mulți utilizatorii de iPhone iar iPad-ul cu problema primirii notificărilor a fost ajutat de o metodă similară celor anterioare:

Pasul 1. Accesați meniul " Setări» → « iTunes Store și App Store" și ieși cont ID Apple.

Pasul 2: Opriți și porniți iPhone-ul sau iPad-ul.

Pasul 3. Odată pornit, accesați meniul " Setări» → « iTunes Store și App Store", faceți clic pe " Log in» și conectați-vă folosind informațiile contului dvs. Apple ID.

Verificați setările sistemului dvs

Dacă pașii enumerați mai sus nu au ajutat, cel mai probabil problema constă în setări iOS sau aplicații specifice. În primul rând, accesați meniul " Setări» → « Nu deranjați» și verificați dacă modul „liniștit” este activat.

Și, în al doilea rând, selectați aplicația de la care nu primiți notificări în meniul „ Setări» → « Notificări" și asigurați-vă că comutatorul " Permiterea notificărilor» activ.

Îndrăgostiți retea sociala VKontakte se confruntă adesea cu problema lipsei notificărilor push. Windows nu apare dialoguri rapide, ceea ce introduce unele inconveniente. Problemele pot fi diferite, vom încerca să vorbim despre ele și să înțelegem metodele de rezolvare.

Probleme problematice cu notificările în VK

De fapt, rezolvarea fiecărei probleme nu este dificilă. Printre acestea se numără următoarele:

  1. Actualizări ale site-urilor de rețele sociale, supraîncărcare a serverului și alte probleme tehnice. Puteți întâlni adesea ceva similar atunci când apar schimbări globale într-o rețea socială. Multe funcții sunt indisponibile, inclusiv notificările push;
  2. Setările globale ale contului au eșuat. Poate că tu sau rudele tale ai putea modifica accidental sau intenționat unii parametri în VK. Rezolvarea problemei contactării cecului parametrii individualiși readucerea valorilor dorite la poziția lor inițială;
  3. Modificarea setărilor în conversațiile private cu mai multe persoane. Aspectul mesajelor este adesea enervant și intruziv, așa că unii utilizatori dezactivează anumite elemente și se plâng de lipsa ferestrelor pop-up;
  4. Browserul nu acceptă scripturi java. Desigur, acest lucru este rar astăzi, dar apar probleme problematice. Un singur remediu va ajuta aici! Ce anume, citește mai departe în articol.

Puncte tehnice: așteptare și actualizare

În această secțiune vom încerca să rezolvăm problemele cu punctele nr. 1 și 4. În ceea ce privește primul, totul este destul de simplu aici. Actualizările și supraîncărcările sistemului sunt temporare și va trebui să aveți răbdare și să așteptați. Cât va dura acest inconvenient? Totul depinde de situația specifică:

  1. Dacă se efectuează o modificare majoră a elementelor individuale ale site-ului, procesul va dura până la 8 ore. În acest timp, va fi efectuată o repornire module individuale, stabilirea conexiunilor și verificarea funcționalității. Pentru a urmări actualizările, vă recomandăm să vă abonați la grupul oficial dezvoltatori în VK;
  2. De asemenea, supraîncărcarea serverului poate fi o problemă atunci când lucrați cu notificări. Acum dezvoltatorii au redus sarcina pe site, dar uneori este posibil să întâlniți fenomenul, mai ales vara. Există o singură soluție, așteptarea și speranța auto-reparare situatii. Dacă apar erori roșii, vă recomandăm să ștergeți memoria cache a browserului.

Aplicațiile pentru lucrul în mediul web sunt o altă poveste. Unele programe nu acceptă scripturi java sau sunt pur și simplu blocate în setările globale. Folosește altceva software, resetați totul la valorile initiale sau reinstalați cea mai recentă versiune a software-ului. Am rezolvat acest lucru, acum să trecem la parametrii pentru VKontakte.

Setări incorecte sau rupte


Adesea, problema apare din cauza unor parametri incorecți sau rupti. Problema poate fi rezolvată prin următorii pași:

  1. Trebuie să mergeți la secțiunea corespunzătoare. Acest lucru se face făcând clic pe pictograma nume din colțul din dreapta sus;
  2. În noua fereastră „Setări”, va trebui să găsiți secțiunea „Notificări”, după care vor apărea glisoare pe ecranul central. Trebuie să fie în poziția corectă. Dacă este greșit, corectează-l;
  3. În cazul dialogurilor în masă, trebuie să verificați dacă funcția corespunzătoare este activată direct în dialog. Pentru a face acest lucru, accesați chatul dorit, găsiți cele trei puncte din partea de sus și selectați „Dezactivați/activați notificările”.

Problema este rezolvată, în unele cazuri va trebui să vă deconectați și să vă conectați și să ștergeți memoria cache. Sperăm că sfaturile v-au ajutat și că ați eliminat inconvenientul. De asemenea, trebuie să acordați atenție faptului că VK folosește notificări prin e-mail și SMS, despre asta vom vorbi în articolele viitoare.

Apple este responsabil pentru funcționarea corectă a notificărilor Push în iOS. Orice aplicație terță parte, dacă dorește să trimită notificări utilizatorului, trebuie să folosească serverele Apple pentru asta. Schema arată astfel: dezvoltatorul o va ridica pe a lui propriul server, care accesează Push Notification Service (APNS) de la Apple, care la rândul său trimite notificări utilizatorilor de pe dispozitivele lor.

Prin urmare, dacă unii aplicație specifică nu vă trimite notificări, atunci problema se află în mâinile strâmbe ale dezvoltatorului, care nu poate configura corect interacțiunea serverului său cu APNS. Dacă nu mai primiți absolut toate notificările, atunci încercați următoarele instrucțiuni.

Deconectați-vă de la contul Apple ID

Pentru identificare Dispozitivele Apple folosește ID-ul tău Apple. Acesta este modul în care compania înțelege unde să trimită notificări. Primul lucru de făcut dacă ai probleme cu primind Push-notificări – deconectați-vă și conectați-vă din nou la ID-ul dvs. Apple. Puteți face acest lucru în Setări > iTunes Store și App Store.

Reconectați dispozitivul la iCloud

Un pas similar ar trebui repetat cu serviciu cloud iCloud, care este responsabil pentru sincronizarea datelor între dispozitive și cu Servere Apple. Puteți face acest lucru în Setări > iCloud.

Reporniți dispozitivul

iOS nu are multe instrumente de rezolvare a problemelor, reboot-ul fiind cel principal. Permiteți-ne să vă reamintim că o repornire este diferită de o oprire/pornire obișnuită. Puteți reporni dispozitivul apăsând lung butonul de pornire și tasta Acasă pe dispozitivele mai vechi și apăsând lung butonul de pornire și de reducere a volumului pe iPhone 7 și iPhone 7 Plus.

Verificați modul Nu deranjați

Dacă sistemul este setat pe modul Nu deranja, nu veți auzi notificări în timp specificat. Asigurați-vă că nu îl porniți permanent. Acest lucru este de înțeles dacă există o pictogramă semilună în bara de stare a dispozitivului.

Verificați setările aplicației dvs

iOS are un sistem de notificare foarte flexibil care vă permite să personalizați fiecare aplicație așa cum doriți. Poate trimite notificări Push, poate afișa notificări doar pe pictograma aplicației, cu bannere în partea de sus a ecranului, poate afișa sau nu notificări pe ecran închis. Pe scurt, există multe opțiuni, toate putând fi vizualizate în „Setări” > „Notificări”. Dacă, la prima lansare a aplicației, ați blocat-o din greșeală de la trimiterea notificărilor, puteți oricând să modificați această setare în acest meniu.

Verificați butonul de sunet

Absurd, dar, după cum arată practica, extrem de sfaturi utile. Întrerupător mic pe lateral panouri iPhone nu afectează în niciun fel funcționarea notificărilor Push, dar se dezactivează sunete de sistem notificări. Deci, dacă îl comutați din greșeală, este posibil să nu auziți notificări importante.

28 decembrie 2015 la 12:25

Notificări push în Android. Greble, cârje și biciclete

  • Dezvoltare de aplicații mobile,
  • Dezvoltare Android

Am fost solicitat să scriu acest articol de o sarcină care mi-a fost atribuită într-unul dintre proiectele mele de lucru: să implementez notificări Push într-o aplicație. Părea că totul era simplu: studiezi documentația, exemple și mergi mai departe. În plus, aveam deja experiență de lucru cu notificări. Dar nu a fost cazul...

Serviciul, în cadrul căruia este implementată aplicația Android, are cerințe destul de stricte pentru funcționarea notificărilor Push. Este necesar să anunțați utilizatorul cu privire la o anumită acțiune în 30-60 de secunde. Dacă notificarea are succes, o solicitare este trimisă de pe dispozitivul utilizatorului către server cu starea corespunzătoare. Din documentație se știe că serviciul GCM ( Google Cloud Mesaje) nu garantează livrarea notificărilor PUSH către dispozitive, prin urmare, ca opțiune backdoor, dacă aceste intervale de timp sunt încălcate, serviciul nostru anunță utilizatorul cu prin SMS mesaje. Deoarece Costul SMS mesajele sunt semnificativ mai mari decât notificările PUSH, este necesar să reduceți cât mai mult fluxul Mesaje SMS către dispozitivele client.

După ce am studiat documentația și am instalat notificări push, am trimis prima versiune a aplicației pentru a testa mai mulți clienți și am început să așteptăm. Rezultatele au fost aproximativ după cum urmează:

  • cu activ Conexiune Wifi totul funcționează perfect: notificările sunt livrate, clienții sunt mulțumiți.
  • cu activ internet mobil Distracția a început.
Unii clienți au scris că au întâmpinat întârzieri în livrarea notificărilor push sau au primit atât PUSH, cât și SMS-uri în același timp, ceea ce este destul de nepractic. Alții au scris că nu au primit nicio notificare, ci doar SMS-uri. Pentru alții, precum dispozitivele noastre de testare, totul a fost ok. Colectarea cât mai mult posibil de la clienții nemulțumiți posibile informații, a început să înțeleagă problema și a venit cu următoarea listă de restricții (această listă a rezultat ulterior într-o Întrebări frecvente cu drepturi depline):
  • Modul de economisire a energiei activat (de exemplu, Stamina activat Dispozitivele Sony) afectează munca Notificări push;
  • Utilizatorul trebuie să aibă cel puțin 1 activ cont Google pe dispozitiv;
  • trebuie să vă asigurați că dispozitivul dvs. are versiunea curentă aplicații” Servicii Google Juca";
  • verificați dacă notificările pentru aplicație sunt dezactivate (bifați caseta de pe pagina aplicației din setările telefonului);
  • verificați dacă modul de fundal al aplicației este limitat (setarea se află în meniul „Utilizarea datelor”);
  • Documentația GCM precizează că notificările sunt trimise numai către anumite porturi, așa că și setările routerului, firewall-ului și antivirusului merită luate în considerare.
După ce am trimis acest memento tuturor clienților, am început din nou să așteptăm rezultatele. Și s-au dovedit a fi din nou „nu foarte buni”. Au început să sape mai departe.

Pe în această etapă Cea scrisă de băieții de la Mail.ru a ajutat foarte mult. Acesta descrie în detaliu complexitățile implementării GCM pe partea clientului, precum și punctele din cauza cărora notificările Push refuză să funcționeze. rețelele mobile. În cele din urmă, a fost luată decizia de a-mi păstra conexiunea la server împreună cu GCM.

Înainte de a lua o decizie, merită evidențiate câteva foarte puncte importante, care vă permit să restrângeți gama de dispozitive potențial „nefuncționale”:

  • problema apare numai atunci când este conectat la internetul mobil;
  • Potrivit clienților, problema apare pe Android versiunea 4 și superioară.
Și așa, să trecem la implementare.

Un dezvoltator Android cu experiență va spune imediat că există cel puțin 2 soluții la problemă: folosiți Service sau AlarmManager. Am încercat ambele variante. Să luăm în considerare primul dintre ele.

Pentru a crea un serviciu indestructibil de sistem care va sta în mod constant în fundal și va îndeplini sarcina noastră, am folosit metoda:

StartForeground(int notificationID, notificare notificare);
Unde

  • notificationId - unele identificator unic notificări care vor fi afișate în bara de stare și în cortina glisantă;
  • notificare - notificarea în sine.
ÎN în acest caz, condiție prealabilă este de a afișa o notificare în bara de stare. Această abordare asigură că serviciului va primi o prioritate mai mare (deoarece interacționează cu partea UI a sistemului) atunci când există o lipsă de memorie pe dispozitiv și sistemul va fi unul dintre ultimii care îl descarcă. Nu avem nevoie de această notificare, așa că am folosit următorul truc: este suficient să lansăm al doilea serviciu simultan cu primul și pentru ambele servicii ca notificareID utilizați aceeași valoare. Apoi omorâți al doilea serviciu. În același timp notificarea va dispărea din starea barei, dar funcționalitatea și capacitățile prioritare ale primului serviciu vor rămâne.

Dându-și seama această abordare, am trimis ansamblul pentru testare. Pe baza rezultatelor, s-a dovedit că sistemul încă descarca serviciul, iar din jurnalele am văzut cât de semnificative au apărut intervale de timp la solicitarea datelor în fundal de la serverul nostru. Prin urmare, am început să implementăm a doua opțiune - AlarmManager.

AlarmManager este o clasă care oferă lucru cu, aproximativ vorbind, un „ceas alarmă”. Ne permite să specificăm timpul după care sistemul va trimite o notificare de difuzare, care ne va trezi aplicația și îi va oferi posibilitatea de a efectua acțiunile necesare. Există câteva limitări ale modului în care funcționează această metodă și trebuie abordate:

  • datele despre „ceasuri alarmă” vor fi șterse după repornirea dispozitivului;
  • Datele de alarmă vor fi șterse după actualizarea aplicației.
Prima grebla pe care am calcat a fost metoda

SetRepeating()
care vă permite să setați un ceas cu alarmă care se repetă la un anumit interval. Înșurubându-l această metodă, au început testarea, iar testele au arătat contrariul - „ceasul alarmă” nu s-a repetat. Am început să ne dăm seama ce se întâmplă și ne-am uitat la documentație. Și acolo au găsit răspunsul la întrebare - începând de la API lvl 19 (Kitkat), absolut toate „ceasurile cu alarmă” din sistem au devenit cele unice. Concluzie - citiți întotdeauna documentația.

Această greblă nu a fost un motiv de frustrare, deoarece soluția la problemă este destul de simplă - lansați un „ceas alarmă” unic și resetați-l după ce se stinge. Când am implementat această abordare, am dat peste următorul rake - s-a dovedit că pt diferite niveluri API-ul trebuie să seteze alarmele în mod diferit, dar nu s-a spus nimic în documentație. Dar această problemă Am rezolvat-o destul de simplu - la întâmplare și prin google. Mai jos este un exemplu de cod care vă permite să setați alarmele corect:

Private static void setUpAlarm (final Context context, final Intent intent, final int timeInterval) ( final AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); final PendingIntent pi = PendingIntent.getBroadcast(context, timeInterval, intent, 0); am.cancel(pi); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) ( final AlarmManager.AlarmClockInfo alarmClockInfo = nou AlarmManager.AlarmClockInfo(System.currentTimeMillis() + timeInterval, pi); am.setAlarmClock(alarmClockInfo); else, if pi; (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) am.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + timeInterval, pi else am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + timeInterval,); pi);
Vreau să vă atrag atenția asupra steagului AlarmManager.RTC_WAKEUP- cu ajutorul acestuia, sistemul va permite aplicației noastre să se „trezească” atunci când ecranul este inactiv, când dispozitivul este în stare blocată.

Această abordare cu ceas cu alarmă ne-a oferit rezultatul dorit- aplicația din fundal interogează corect serverul pentru date noi. În prezent finalizăm algoritmul. În prezent implementăm și testăm următoarea optimizare, care ne va permite să restrângem gama de dispozitive și, prin urmare, să reducem sarcina pe server:

  • mesajul trimis de GCM către dispozitiv conține un ID unic;
  • primind datele cerere GET V fundal verificăm dacă o intrare cu același ID există deja pe dispozitiv;
  • dacă nu există astfel de date la nivel local pe dispozitiv, ne amintim acest ID și ora la care a fost primit T1;
  • asteptam PUSH cu acelasi ID, la primire ne amintim ora T2 si verificam diferenta dintre T2 si T1;
  • dacă diferența este mai mare decât un criteriu (valoare) temporar, atunci dispozitivul are o problemă cu livrarea notificărilor și pentru funcţionare corectă serviciul trebuie să solicite în mod constant date în fundal de la server (vă sfătuiesc să selectați criteriul în funcție de problema care se rezolvă. În cazul nostru, criteriul a fost ales egal cu 5 minute);
  • această diferență ar trebui calculată de mai multe ori, de exemplu de 5-10 ori, abia după aceea se poate concluziona că dispozitivul are de fapt o problemă cu primirea notificărilor Push (acest lucru elimină situația unei banale deconectare a conexiunii, timeout etc.);
  • trebuie alungat acest algoritm periodic (de exemplu, o dată pe săptămână sau după actualizarea sistemului de operare pe dispozitiv).
Toate cele bune. Și mai puține astfel de cârje.

P.S.
A ajutat foarte mult în timpul procesului de testare