| | |
| Stránka: 1 z 1
| [ Príspevkov: 14 ] | |
Autor | Správa |
---|
Registrovaný: 14.04.09 Prihlásený: 10.08.21 Príspevky: 97 Témy: 15 | Napísal emkej8: 22.03.2014 0:52 | |
|
Zdravím, potreboval by som trošku poradiť s jednou časťou appky, na ktorej pracujem. Je to moja prvá appka takže som fakt len začiatočník. Ide o toto: appka zatiaľ funguje tak, že sa na začiatku treba lognúť, login údaje sa overia na servery a ak sedia užívateľa to posune na main aktivitu, kde sa mu zobrazujú nejaké údaje z db, to asi ale nieje také podstatné. Potreboval by som spraviť nejaký background service niečo, čo by sa spustilo po logine a bežalo v pozadí aj ak by bola appka minimalizovaná. Tá background činnosť by mala robiť nasledovné: skontrolovať či je má telefón prístup k netu a ak áno každých x minút pustiť nejaký php script, ktorý bude uložení na servery, ak nie tak sa ten background proces zastaví. Je možné také niečo spraviť? Za každú radu vďaka
|
|
Registrovaný: 05.10.06 Prihlásený: 15.10.18 Príspevky: 1891 Témy: 148 Bydlisko: Bratislava | Napísal Kamahl: 22.03.2014 2:42 | |
|
Preco chces pustat php script aj ked je appka minimalizovana? Nebolo by lepsie pozriet sa na funkcie onResume() a onPause(), v ktorych by si startoval a vypinal to checkovanie? Toto pouzivam ja na checkovanie pripojenia. Mam na to celu triedu, lebo v nej mam este nejake ine veci ale tebe staci tato funkcia Kód: public class ConnectionDetector { private Context mContext; private ConnectivityManager connectivity; public ConnectionDetector(Context context) { mContext = context; }
public boolean isInternetAvailable() { connectivity = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) { NetworkInfo[] info = connectivity.getAllNetworkInfo(); if (info != null) { for (int i = 0; i < info.length; i++) { if (info[i].getState() == NetworkInfo.State.CONNECTED) return true; } } } return false; } } Si si isty, ze to prihlasenie je bezpecne? Odosielas sifrovane udaje a nie plain heslo? Edit: pytam sa preto, ze robit zbytocne service, ktory bude stale zobudzat mobil nie je dobry napad. Vydrz baterky padne o XY%. Ja ked som robil prvy widget, este pre android 2.2, tak som tiez zbytocne pouzil serivice a divil som sa, ze mobil nic nevydrzal. Skoro vzdy je aj lepsie riesenie a service treba pouzit len vtedy, ak aplikacia ma notifikovat uzivatela o niecom aj ked je mobil idle.
_________________ Notebook Dell 7537, 24" BenQ BL2411PT, Logitech Illuminated keyboard, Razer DeathAdder, Razer Goliathus, Koss Porta Pro |
|
Registrovaný: 05.04.11 Príspevky: 1693 Témy: 50 Bydlisko: Žilina, Pop... | Napísal XOLOO: 22.03.2014 8:43 | |
|
Riešiť to Servicom fakt nevidím potrebné a ako bolo spomenuté zbytočne by ti to zožralo batériu. Ale pre info by si potreboval urobiť triedu, ktorá bude extend na Service, tam potom preťažiť onStartCommand metódu kde napíšeš vlákno ktoré bude vykonávať čo chceš a budeš ho uspávať. Ďalej treba nastaviť intent filter a potom nejaký receiver, aby si mal kde tie tvoje hodnoty počúvať. Ktomu kódu ešte do manifestu : Kód: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
_________________ rMBP 13 2015 iPhone 7
|
|
Registrovaný: 14.04.09 Prihlásený: 10.08.21 Príspevky: 97 Témy: 15 | Napísal autor témy emkej8: 22.03.2014 11:00 | |
|
okej, ak service nieje ideálne riešenie, aký je teda najlepší spôsob ako by sa to dalo spraviť? Kamahl: áno, heslo je šifrované a vďaka za ten kód
|
|
Registrovaný: 05.10.06 Prihlásený: 15.10.18 Príspevky: 1891 Témy: 148 Bydlisko: Bratislava | Napísal Kamahl: 22.03.2014 12:47 | |
|
Ako som uz hovoril, ak nepotrebujes aby telefon zacal notifikovat uzivatela aj ked je idle, urob to tak, ze v onResume() zapni checkovanie dat a v onPause() ho zas vypni
_________________ Notebook Dell 7537, 24" BenQ BL2411PT, Logitech Illuminated keyboard, Razer DeathAdder, Razer Goliathus, Koss Porta Pro |
|
Registrovaný: 14.04.09 Prihlásený: 10.08.21 Príspevky: 97 Témy: 15 | Napísal autor témy emkej8: 22.03.2014 13:07 | |
|
nepotrebujem, žeby užívateľ dostával notifikácie, dôležité je, žeby to bežalo v backgrounde každých x min aj, keď bude appka minimalizovaná ak je to možné spraviť cez onResume() a onPause() tak super, a ospravedlňujem sa za také otázky ale fakt s tým len začínam a radšej si chcem byť istý, že to je takto možné spraviť, než aby som sa s tým babral neviem ako dlho a potom zistil, že sa to tak nedá
|
|
Registrovaný: 05.10.06 Prihlásený: 15.10.18 Príspevky: 1891 Témy: 148 Bydlisko: Bratislava | Napísal Kamahl: 22.03.2014 13:12 | |
|
Ale preco by to malo bezat aj ked je appka minimalizovana? Aky to ma zmysel? Prave na to je service a prave ten ti vymlati bateriu. Taku appku nikto nechce
_________________ Notebook Dell 7537, 24" BenQ BL2411PT, Logitech Illuminated keyboard, Razer DeathAdder, Razer Goliathus, Koss Porta Pro |
|
Registrovaný: 14.04.09 Prihlásený: 10.08.21 Príspevky: 97 Témy: 15 | Napísal autor témy emkej8: 22.03.2014 13:34 | |
|
pretože je dôležité, aby to po spustení appky pripočítavalo užívateľovi povedzme nejaké kredity každých x min pod podmienkou, že bude online, takže jediný spôsob ako to urobiť je cez service? btw. cez alarm - receiver by to nešlo, alarm by volal každých x min receiver, ktorý by púšťal ten script
|
|
Registrovaný: 05.10.06 Prihlásený: 15.10.18 Príspevky: 1891 Témy: 148 Bydlisko: Bratislava | Napísal Kamahl: 22.03.2014 14:27 | |
|
Stale nerozumiem preco by to malo bezat aj ked je mobil idle. Ked otvoris appku, posli request, zisti kolko casu ubehlo od posledneho requestu a vypocitaj pocet kreditov, ktore ma dostat. Poriadne nad tym popremyslaj, vzdy je aj jendoduchsi sposob ako nieco naprogramovat.
_________________ Notebook Dell 7537, 24" BenQ BL2411PT, Logitech Illuminated keyboard, Razer DeathAdder, Razer Goliathus, Koss Porta Pro |
|
Registrovaný: 14.04.09 Prihlásený: 10.08.21 Príspevky: 97 Témy: 15 | Napísal autor témy emkej8: 22.03.2014 15:11 | |
|
pretože to má prirátavať iba ak je užívateľ online a ak dobre chápem tvoj príklad tak tam by to fungovalo tak, že užívateľ zapne appku zapíše sa čas, a keď užívateľ zapne appku zas vypočíta sa koľko kreditov by mal dostať za časový interval od kedy zapol appku prvý krát do druhého zapnutia, chápem to správne? rozmýšľam nad tým už dlhšie ale zatiaľ som neprišiel na iný spôsob ako by to bolo možné spraviť
|
|
Registrovaný: 05.10.06 Prihlásený: 15.10.18 Príspevky: 1891 Témy: 148 Bydlisko: Bratislava | Napísal Kamahl: 22.03.2014 15:20 | |
|
co znamena ze je online? ze ma zapnutu appku? alebo ze je appka vypnuta ale mobil je pripojeny na net?
_________________ Notebook Dell 7537, 24" BenQ BL2411PT, Logitech Illuminated keyboard, Razer DeathAdder, Razer Goliathus, Koss Porta Pro |
|
Registrovaný: 14.04.09 Prihlásený: 10.08.21 Príspevky: 97 Témy: 15 | Napísal autor témy emkej8: 22.03.2014 15:27 | |
|
mobil je pripojený k netu
|
|
Registrovaný: 05.04.11 Príspevky: 1693 Témy: 50 Bydlisko: Žilina, Pop... | Napísal XOLOO: 22.03.2014 22:05 | |
|
Nechcem ti kaziť ideály, ale takáto appka bude pre užívateľov asi nepríťažlivá. Ale ako som povedal hore, potrebuješ service a potom budeš potrebovať jeden BroadcastReceiver ten urobíš tak isto , teda tvoja trieda bude dediť zo servicu, preťažíš onStartCommand a onDestroy metódy. príklad niečo ako toto : http://stackoverflow.com/questions/3141 ... nnectivity alebo ak tak môj, čo sme robili v škole : Kód: public class RecievingService extends Service { public static String messageLabel = "moj.super.receiver"; private int _count = 0; @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; }
private BroadcastReceiver _reciever; @Override public int onStartCommand(Intent intent, int flags, int startId) { Toast.makeText(getApplicationContext(), "Recieving starts", Toast.LENGTH_SHORT).show();
// create reciever _reciever = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { //do something on recieved intent Toast.makeText(getApplicationContext(), "Recieved: " + _count, Toast.LENGTH_SHORT).show(); _count++; } }; registerReceiver(_reciever, new IntentFilter(RecievingService.messageLabel)); return super.onStartCommand(intent, flags, startId); }
@Override public void onDestroy() { unregisterReceiver(_reciever); Toast.makeText(getApplicationContext(), "Recieving ends", Toast.LENGTH_SHORT).show(); super.onDestroy(); } }
_________________ rMBP 13 2015 iPhone 7
|
|
Registrovaný: 14.04.09 Prihlásený: 10.08.21 Príspevky: 97 Témy: 15 | Napísal autor témy emkej8: 23.03.2014 14:57 | |
|
vďaka za odpoveď, ja sa ešte pokúsim porozmýšľať nad alternatívou
|
|
| Stránka: 1 z 1
| [ Príspevkov: 14 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Vytvorenie suboru php a vlozenie php scriptu v PHP, ASP | 4 | 1438 | 07.05.2010 14:02 DeiForm | | automaticke spustanie PHP scriptu v PHP, ASP | 5 | 536 | 08.08.2008 9:02 Tominator | | spustenie linux scriptu cez php v PHP, ASP | 4 | 723 | 20.10.2008 11:50 TommyHot | | Nemozem pochopiť časť scriptu PHP v PHP, ASP | 7 | 673 | 14.06.2011 0:56 walther | | Vypis z MySQL a spracovanie php scriptu v tabulke [ Choď na stránku: 1, 2 ] v PHP, ASP | 39 | 2604 | 21.03.2010 1:22 JanoF | | zvlastny bug - prekryvanie backgroundu v HTML, XHTML, XML, CSS | 12 | 816 | 22.09.2008 11:17 don jebot | | graficky navrh backgroundu komentarov v Webdesign | 3 | 873 | 02.12.2010 22:17 Flety | | Zmena backgroundu v téme v Redakčné systémy | 8 | 606 | 11.08.2015 11:35 chrono | | Volanie v Audio programy | 3 | 420 | 30.07.2012 22:57 p4tooo | | skype volanie v Audio programy | 1 | 2167 | 03.06.2007 20:59 fuco | | Film Volanie v Kultúra, umenie, filmy, hudba, história, média | 0 | 304 | 24.11.2019 9:11 fixa | | [VYRIESENE] volanie premennej v PHP, ASP | 2 | 453 | 13.02.2009 13:50 beginner | | Systemové volanie fork v Assembler, C, C++, Pascal, Java | 4 | 347 | 06.12.2014 19:57 chrono | | C volanie funkcii v Assembler, C, C++, Pascal, Java | 12 | 1161 | 22.10.2011 15:43 nBXXL | | jQuery: volanie pluginu onFly v JavaScript, VBScript, Ajax | 2 | 628 | 31.01.2009 15:27 Flety | | Volanie API po kliknuti v JavaScript, VBScript, Ajax | 3 | 407 | 20.05.2013 0:05 shaggy |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|