Forum » Programiranje » Android notification
Android notification
![](https://static.slo-tech.com/stili/avatar_gray.gif)
mihy11 ::
Zdravo!
Razvijam eno mobilno aplikacijo, pa me zanima kako naj izdelam, da se bo uporabniku pojavil notification vsake dve uri kljub zaprti aplikaciji in pod pogojem, da bo izpolnjen nek pogoj ? Bi lahko mogoče kdo pomagal?
Razvijam eno mobilno aplikacijo, pa me zanima kako naj izdelam, da se bo uporabniku pojavil notification vsake dve uri kljub zaprti aplikaciji in pod pogojem, da bo izpolnjen nek pogoj ? Bi lahko mogoče kdo pomagal?
"Computers are good at following instructions, but not at reading your mind."
by Donald Knuth
by Donald Knuth
![](https://static.slo-tech.com/stili/bel_rudis.png)
shadeX ::
Sicer je že nekaj časa kar sem delal to ampak iz glave:
1. Uporabi AlarmManager class, ki ti omogoča časovno izvršitev neke kode
2. Pod Intent, ki ga zahteva AlarmManager podaš nov razred, ki deduje iz "Broadcast Receiverja". Tam se ti bo izvršila koda, kadar bo za to primeren čas in točno tam daš svojo "if" kodo.
3. V istem razredu uporabiš še NotificationManager, ki ti omogoča, da uporabnik dejansko dobi obvestilo.
4. Ne pozabit spisat Broadcast Receiverja za "boot", kjer boš tudi aktiviral "AlarmManager" iz 2. točke, v primeru kadar bo uporabnik izklopil / vklopil telefon.
1. Uporabi AlarmManager class, ki ti omogoča časovno izvršitev neke kode
2. Pod Intent, ki ga zahteva AlarmManager podaš nov razred, ki deduje iz "Broadcast Receiverja". Tam se ti bo izvršila koda, kadar bo za to primeren čas in točno tam daš svojo "if" kodo.
3. V istem razredu uporabiš še NotificationManager, ki ti omogoča, da uporabnik dejansko dobi obvestilo.
4. Ne pozabit spisat Broadcast Receiverja za "boot", kjer boš tudi aktiviral "AlarmManager" iz 2. točke, v primeru kadar bo uporabnik izklopil / vklopil telefon.
Zgodovina sprememb…
- spremenil: shadeX ()
![](https://static.slo-tech.com/stili/avatar_gray.gif)
mihy11 ::
Sicer je že nekaj časa kar sem delal to ampak iz glave:
1. Uporabi AlarmManager class, ki ti omogoča časovno izvršitev neke kode
2. Pod Intent, ki ga zahteva AlarmManager podaš nov razred, ki deduje iz "Broadcast Receiverja". Tam se ti bo izvršila koda, kadar bo za to primeren čas in točno tam daš svojo "if" kodo.
3. V istem razredu uporabiš še NotificationManager, ki ti omogoča, da uporabnik dejansko dobi obvestilo.
4. Ne pozabit spisat Broadcast Receiverja za "boot", kjer boš tudi aktiviral "AlarmManager" iz 2. točke, v primeru kadar bo uporabnik izklopil / vklopil telefon.
Kakšna pa je koda za broadcast receiverja za "boot" imaš morda kakšen primer?
"Computers are good at following instructions, but not at reading your mind."
by Donald Knuth
by Donald Knuth
![](https://static.slo-tech.com/stili/bel_rudis.png)
shadeX ::
Isto deduješ iz razreda "Broadcast Receiver", s to razliko, da moraš v manifest to zapisat:
1. Daš dovoljenja:
2. Poveš kateri razred je odgovoren za kodo, ki se bo izvršila ob zagonu naprave.
Ko bo uporabnik vklopil telefon, se bo izvršila koda, ki jo imaš v "onReceive" metodi, v "TvojRazredKiDedujeIzBroadcastReceiverja" razredu.
1. Daš dovoljenja:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
2. Poveš kateri razred je odgovoren za kodo, ki se bo izvršila ob zagonu naprave.
<receiver android:name=".TvojRazredKiDedujeIzBroadcastReceiverja"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver>
Ko bo uporabnik vklopil telefon, se bo izvršila koda, ki jo imaš v "onReceive" metodi, v "TvojRazredKiDedujeIzBroadcastReceiverja" razredu.
Zgodovina sprememb…
- spremenil: shadeX ()
![](https://static.slo-tech.com/stili/avatar_gray.gif)
mihy11 ::
Hvala za vse informacije. Pa deluje tudi recimo, če je nastavljen interval na eno uro, ker se mi je zgodilo, da sem imel nastavljeni na eno uro pa mi je po 10 minutah poslalo notification potem pa se ni zgodilo nič več naprej, kot bi android "ubil" to.
"Computers are good at following instructions, but not at reading your mind."
by Donald Knuth
by Donald Knuth
![](https://static.slo-tech.com/stili/avatar_gray.gif)
mihy11 ::
"setRepeating" mora biti nastavljen na alarm manager objektu.
Takole sem nastavil pa se mi je sedaj pokazalo obvestilo po 16. minutah:
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, 10, 3600 * 1000, pendingIntent );
"Computers are good at following instructions, but not at reading your mind."
by Donald Knuth
by Donald Knuth
![](https://static.slo-tech.com/stili/avatar.gif)
Mavrik ::
A mora biti točno na dve uri ali približno na dve uri? A mora res biti vsaki dve uri?
The truth is rarely pure and never simple.
![](https://static.slo-tech.com/stili/avatar_gray.gif)
mihy11 ::
A mora biti točno na dve uri ali približno na dve uri? A mora res biti vsaki dve uri?
Čas ni tako zelo pomemben. Nekje na približno dve uri. In tudi nekje na približno vsaki dve uri razen ponoči.
"Computers are good at following instructions, but not at reading your mind."
by Donald Knuth
by Donald Knuth
![](https://static.slo-tech.com/stili/avatar_gray.gif)
mihy11 ::
A mora biti točno na dve uri ali približno na dve uri? A mora res biti vsaki dve uri?
Čas ni tako zelo pomemben. Nekje na približno dve uri. In tudi nekje na približno vsaki dve uri razen ponoči.
Ne vem zakaj, nastavljeno imam na 1 uro interval, pa mi obvestilo pošlje po 15min...
"Computers are good at following instructions, but not at reading your mind."
by Donald Knuth
by Donald Knuth
![](https://static.slo-tech.com/stili/bel_rudis.png)
shadeX ::
Drugi parameter, ki si ga vpisal (10), sprejme milisekunde pri katerih se bo alarm vklopil. Če me spomin ne vara, so to milisekunde od leta 1970, torej če hočeš čez 2 uri triggat alarm boš moral dobiti številko milisekund + 2 uri (v milisekundah).
Trenutne milisekunde najlažje dobiš z instanco "Calendar" razreda:
cal.getTimeInMillis()
Tretji parameter so ravno tako milisekunde, kdaj naj se alarm ponovi ampak vzame že v zakup trenutni čas, torej ti samo vpišeš čas kdaj naj se alarm ponovi od takrat ko se je že izvršil.
Torej na 2 minuti bi bil tretji parameter 120*1000;
Trenutne milisekunde najlažje dobiš z instanco "Calendar" razreda:
cal.getTimeInMillis()
Tretji parameter so ravno tako milisekunde, kdaj naj se alarm ponovi ampak vzame že v zakup trenutni čas, torej ti samo vpišeš čas kdaj naj se alarm ponovi od takrat ko se je že izvršil.
Torej na 2 minuti bi bil tretji parameter 120*1000;
Zgodovina sprememb…
- spremenil: shadeX ()
![](https://static.slo-tech.com/stili/avatar_gray.gif)
mihy11 ::
Drugi parameter, ki si ga vpisal (10), sprejme milisekunde pri katerih se bo alarm vklopil. Če me spomin ne vara, so to milisekunde od leta 1970, torej če hočeš čez 2 uri triggat alarm boš moral dobiti številko milisekund + 2 uri (v milisekundah).
Trenutne milisekunde najlažje dobiš z instanco "Calendar" razreda:
cal.getTimeInMillis()
Tretji parameter so ravno tako milisekunde, kdaj naj se alarm ponovi ampak vzame že v zakup trenutni čas, torej ti samo vpišeš čas kdaj naj se alarm ponovi od takrat ko se je že izvršil.
Torej na 2 minuti bi bil tretji parameter 120*1000;
Hvala za odgovor. Sedaj bi pa moralo iti!
"Computers are good at following instructions, but not at reading your mind."
by Donald Knuth
by Donald Knuth
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | AAA Polnilne baterijeOddelek: Elektrotehnika in elektronika | 3024 (2399) | Dr_M |
» | [Android] Informacija iz Servic-a v Main ActivityOddelek: Programiranje | 927 (737) | i386 |
» | [Android] Izklop/Vklop vsak dan ob isti uri - problemOddelek: Programiranje | 1139 (954) | mallard |
» | [Java]OOP Vprasanje glede dedovanjaOddelek: Programiranje | 950 (820) | KernelPanic |
» | Nova anketa: kaj vas zjutraj zbudi? (strani: 1 2 )Oddelek: Novice / Ankete | 15167 (12372) | jype |