Application-nek van onCreate() metódusa. Azzal tudod mikor kell újrainicializálni. Ellenkező esetben pedig szerintem a static dolgok megmaradnak, amíg ki nem kukázza teljesen az app-ot a rendszer.
Sianis
Application-nek van onCreate() metódusa. Azzal tudod mikor kell újrainicializálni. Ellenkező esetben pedig szerintem a static dolgok megmaradnak, amíg ki nem kukázza teljesen az app-ot a rendszer.
Sianis
Köszönöm! Szóval ez olyan szinten van, mint az Application.
Látszólag ez egy jól megfogalmazott körbejárása a dolognak.
Sianis
A statik mezők értéke addig marad meg, amíg a proccess él. A proccesst mostanában az Android ritkán lövi ki, de kevés memória esetén lehetséges, tovább a user is kilőheti.
SharedPrefben egyébként lehet, hogy jobb lenne tárolni ezeket a cuccoat.
Szerk.: A Sianis által linkelt válasz pontosabb amit én írtam.
[ Szerkesztve ]
Sziasztok!
Az lenne a kérdésem hogy GTFS [katt] menetrendet, hogy tudok android-ban real time vagy nem real time lekezelni, esetleg sgllite-ba feltölteni?
Köszi a segítséget már hetek óta egy helyben toporgok emiatt
látok, hallok, érzek és gondolkodom.
Mit szeretnél vele csinálni, egy kicsit pontosabban? Mert azért nem hiszem, hogy egy szöveges fájl feldolgozásán heteket kéne ülni.
“All nothings are not equal.”
BKV menetrend GTFS-ben van megadva és szeretném kezelni a menetrendet! Veheted úgy is , hogy egy saját bkv menetrendet szeretnék írni +feature-ökkel! Úgy heteket, hogy ezt az alkalmazást hobby szinten fejlesztem
[ Szerkesztve ]
látok, hallok, érzek és gondolkodom.
Thx. Mindkettőtöknek!
Shared prefsre én is gondoltam, de eredetileg függetleníteni akartam a context-től. Végül is nem gond; úgy oldottam meg, hogy a könyvtár alapból beállított adatokkal már működik; ha meg változtatni akarok rajta futás közben, akkor ahhoz kell context is.
Amúgy ha a process eltűnik, akkor az Application is eltűnik, nem? Vagyis mindent újra kell indítani. Vagyis ideális alternatíva lenne globális adatok elhelyezésére (speciel most nekem nem erre kell, csak belső adatok tárolására voltam kíváncsi). Ennek ellenére azt olvastam, hogy nem ajánlott elrendezés, mert nehéz tesztelni...
És csak a teljesség kedvéért: ha csinálok egy singletont, ami valójában egy példány, csak saját magára való hivatkozást tárol, akkor az hogy létezik, hogy az Activity-vel együtt eltűnik? (És nem az Applicationnel. Vagyis memória kevés, háttérben Activity bezár, Application marad, de a singleton is eltűnik.) Ezt egyébként több helyen olvastam, és már én is tapasztaltam. Annak nem kéne a process végéig megmaradni?? Vagy az önhivatkozás máshogy számítana?? Ennek a kérdésnek ugyan már semmi köze az eredeti problémához, csak érdekel...
És hol akadtál el?...
thon73: Amúgy ha a process eltűnik, akkor az Application is eltűnik, nem?
Természetesen, az Application objektuma egy sima Java objektum ami ott csücsül a process memóriaterületén, ha a proccess leáll, a területe kipucolódik.
És csak a teljesség kedvéért: ha csinálok egy singletont, ami valójában egy példány, csak saját magára való hivatkozást tárol, akkor az hogy létezik, hogy az Activity-vel együtt eltűnik?
A Singleton a proccess végéig megmarad, a garbage collector nem tudja kidobni, hiszen van egy hivatkozási pont (getInstance()) ami egy nem null objektumra mutat, és később elkérhető. Baj lenne, ha nem így lenne.
Egyébként itt jegyezném meg, hogy a Singleton nem egy túl szerencsés minta, alapvetően kerülendő. Persze sok esetben nem lehet megúszni nélküle.
[ Szerkesztve ]
szimplán a gtfs sgllite feltöltésénél mivel egy 300 megás zipről beszélünk!
látok, hallok, érzek és gondolkodom.
Az adat nagyrésze kidobható, talán nézd meg a specifikációt. Pl. biztos vagyok benne, hogy az összes járat összes útvonalának részletes GPS adatai nem kellenek egy menetrend apphoz. Tovább egy sqlite db-ban sokkal hatékonyabban lehet tárolni az adatokat a szövegnél, pl. egy nagyobb számhoz nem karakterenként egy byte-ot foglal le, hanem összesen 4-et, stb.
[ Szerkesztve ]
geocatch-csel vissza tudom fejteni a megálló neveit?
látok, hallok, érzek és gondolkodom.
Azt nem igazán javasolnám.
mármint a hosszúsági/szélességi adatokat a nevek alapján? (bocs az érthetetlen fogalmazásért )
látok, hallok, érzek és gondolkodom.
A válaszom ugyanaz.
hát.... az kemény meló lenne... lehet inkább tényleg kéne csinálnod egy saját sqlite db-t, jobban jársz, aztán onnantól jó kis gráfos feladat megoldani az átszállásokat, hogy lehessen vele tervezni is stb...
Sziasztok!
Arra tudtok valami megoldást, hogy hogyan lehetne vizsgálni mikor van az alkalmazás előtérben, háttérben? Első körben arra gondoltam, hogy egy AtomicInteger számlólót bevezetek, amikor egy-egy Activity onResume lefut akkor növeli, onPause esetében csökkenti a számlálót. Csökkentés, növelés után kiküldök egy Otto értesítést, hogy ellenőrizze az értéket. Ha 0 akkor háttérben van az alkalmazás, hogy nem akkor előtérben. Érzem, hogy ez még közel sem tökéletes, mivel minden Activity váltásnál 2x fut le az ellenőrzés, egyszer látja, hogy 0-ra vált (onPause), majd újra megnő (onResume). Illetve abban sem vagyok biztos, hogy az onPause hamarabb végez, mint egy onResume. Legyünk ugye gyanakvóak.
Valami tipp, hogy hogyan lehetne ezt tökéletesre megírni?
Köszi!
Sianis
Egyrészt valóban a lifecycle callback metódusokra lehet hagyatkozni, de el lehet kérni a running proccesseket is.
Tehát, ha mondjuk azt mondom, hogy onPause után isApplicationSentToBackground true-val tér vissza, akkor egyetlen Activity sem fut előtérben, tehát háttérben van az app. Ha onResume lefut bármikor akkor meg egyértelműen előtérben fut, igaz?
Sianis
[ Szerkesztve ]
Igen, bár az onResume után lehet hirtelen egy onPause is megint, stb.
Igen, de ha mondjuk mindkettő esetében ugyanazt a syncronized metódust hívom akkor már tuti, hogy onPause nem előzi be az onResume-ot. Az meg, hogy esetleg emiatt egyszer egyszer egy ilyen gyors ki/bekapcsolás történik az megeshet. Csak alapetően nem akarom, hogy gyakran kapcsolgassam a kapcsolót le, fel.
Sianis
A szinkronizáció nem hiszem, hogy kell ide, az életciklus metódusok mind a main szálon futnak, nem lapolódhatnak át.
Szerintem egy implementációs problémán kezdtél el részleteiben rugózni, miközben a kérdésfeltevés már a gyökerében rossz. Mit szeretnél elérni ezzel és miért?
Egyébként az átlapolódást én is akartam írni, tényleg nem tud előfordulni az egy szál miatt.
[ Szerkesztve ]
“All nothings are not equal.”
Egy backend service-t akarok írni, ami a háttérben hallgatózik location változás után. Ha előtérben fut az app, akkor figyeli a GPS-t, háttérben csak percenként, 100 méteres elmozdulással network alapú helymeghatározással figyel. Ezt akarom kapcsolgatni.
Az most más kérdés, hogy mennyire etikus, hasznos, hogy egy az app állandóan figyeli, hogy merre jár a user. Ez a feladat. Amúgy úgy akarom megcsinálni, hogyha nincs netkapcsolat akkor leáll a service, mert értelmetlen a futása. Aztán majd, ha visszatér a hálózat, újra elindul.
Sianis
Szerintem a Service-ben csináld meg azt a számlálót, amit írtál is, és 0, >0 váltásoknál billentsd a kapcsolódat, ahogy írtad is. Annyi, hogy tegyél késleltetést egy Handleren keresztül a váltás elé, így ha két Activity között megy át az app, nem billeg feleslegesen.
“All nothings are not equal.”
Milyen uml diagram(ok) amit érdemes lenne generálnom android alkalmazás forráskódjából?
Kérlek tisztelj meg azzal, hogy válaszolsz a privát üzenetre.
ez engem is érdekelne.
anno szoptunk ezzel java-nál. valahogy tudott generálni az osztályok alapján de nem volt tökéletes.. bezzeg a visual studio...
Visual paradigm tud, a kérdés inkább arra irányult, hogy milyet érdemes? Mi mutatná be legjobban az alkalmazásomat?
Kérlek tisztelj meg azzal, hogy válaszolsz a privát üzenetre.
Szerintem egy class diagram és egy activity diagram bőven sok is, de leírható velük minden simán. Sequence-et nem javasolnék, mert sokkal terebélyesebb az activitynél, miközben kvázi ekvivalensek.
“All nothings are not equal.”
Hali!
Github projectet hogyan tudok importálni eclipsbe? Konkrétan a Google camera appját szeretném
Ha nem akarsz git-el foglalkozni, akkor kattints rá a "Download ZIP" gombra, és kész. Ha akarsz git-el foglalkozni, akkor git clone.
Itt bal oldalt kiválasztom a legfrissebb verziót, de csak tar-ba tudom letölteni
Dehát ez nem is GitHub.Tarral mi a baj? Mindesetre itt is csak a git clone marad, ha nem jó a tar...
Az, hogy ha beimportálom Eclipse tele lesz minden hibával + csak egy része importálódik be.
Hát gondolom tele van dependenciákkal.
Igazából nem is kéne az eclipse, ha tudnám, hogy hogyan tudom lefordítani mondjuk parancssorból. AMit módosítani akartam a forrásfájlban már megtettem Notepad-ban, csak újra kéne fordítani. Ebben esetleg tudsz segíteni?
Ez egy NDK-s project. Fogalmam sincs hogyan kell fordítani.
Ezt a leírást nézd végig és tartsd be. Az AOSP nem egy olyan dolog, amit csak úgy szétkap és tákol az ember.
“All nothings are not equal.”
Már ott megbukik a dolog hogy Linux Mindenesetre köszönöm a leírást, végig fogom olvasni. Linuxból milyet lenne érdemes telepíteni? Nem nagyon vagyok otthon ebben a témában, de ha muszáj akkor muszáj
Szerk: már megvan
[ Szerkesztve ]
Hát személyes és kollégák tapasztalatával azt tudom mondani, hogyha komolyan akarsz foglalkozni Android fejlesztéssel (meg több mindennel, itt van pár példa: Java, Ruby stb), akkor állj át egy UNIX alapú rendszerre. Nagyon sok szívás tud lenni Windowssal ilyen téren sajnos.
Erre a legjobb megoldás jelen pillanat a Vagrant, ha nem akarod lecserélni a Windowst.
https://heureka-kreativ.hu
Sziasztok!
Bluetooth kezeléssel kapcsolatban lenne kérdésem: van egy kezdőactivitym, ami az alkalmazás funkciói közti navigálást oldja meg. Mind a 3 ebből indítható Activity igényel BT kapcsolatot, méghozzá ugyanahhoz az eszközhöz, de egyelőre mind a 3-nál külön kell csatlakozni, minden induláskor. Hogy tudnám megoldani, hogy a főactivitymben történjen a BT csatlakozás, és ezt a kapcsolatot "átadjam" minden egyéb activitymnek? A BT kezelés AsyncTask-el megy, így elég egyszerű megoldani a különböző adatkezeléseket a különböző activitykhez.
Előre is köszi a segítséget.
[ Szerkesztve ]
Bocsánat, hogy a sok magas szintű fejlesztés mellett egy nagyon kezdő kérdéssel állok elő.
A multithread-ek világában próbálok elmélyedni. Tudna valaki egy olyan kódot/linket adni, ahol specifikusan Android-on a happens-before eseményt tudnám tanulmányozni; vagyis amivel el tudom érni, hogy a thread-ek biztosan megkeveredjenek?
Specifikusan egy olyan ötlet kellene, hogy a thread a saját cache-ében tárolja el a globális változómat, és nemigen tudom, hogyan lehetne ezt kikényszeríteni.
Nem a helyes megoldásra van szükségem (arról rengeteg okos ötlet van), hanem magát a hibajelenséget szeretném látni.
Előre is köszönöm!
Hali!
Visszafejtettem egy APK-t Virtuous Ten Studio segítségével, kaptam sok-sok .smali fájlt. Ki lehet ezekből valahogyan VTS-ben generálni Java osztályokat, hogy ne ezt a binary közeli izébizét (inkább assemblyhez hasonló, de lehet, hogy irdatlan nagy hülyeséget mondok most) kelljen értetlenül néznem?
Nincs az APK-ban se Proguard, se DexGuard védelem.
Próbáltam a Smali2Java nevű kis programmal, az nagyon szépen visszafejtette, de több helyen hülyeség van, ezért gondoltam, hogy ha tudja ezt a VTS, akkor inkább azzal csinálnám. Na meg ott a szerkesztő felület is jobb
Köszönöm!
https://heureka-kreativ.hu
(#2244) WonderCSabo válasza trisztan94 (#2243) üzenetére
Jobb gomb a projekten - > generate java sources. Ha ez lefutott, jobb gomb az adott fájlon - > open java source.
Ez Dalvik assembly, úgyhogy annyira nem jársz messze.
A VTS-ben a projekt beállításai között van egy opció, hogy Java forrás generálása (checkbox), ezt billentsd be, majd buildeld újra az APK-t.
Így is maradhatnak benne "hülyeségek".
Vagy ahogy WonderCSabo írta
[ Szerkesztve ]
“All nothings are not equal.”
(#2246) trisztan94 válasza WonderCSabo (#2244) üzenetére
(#2247) WonderCSabo válasza trisztan94 (#2246) üzenetére
Töröld ki kézzel a fájlt, indítsd újra a VTS-t, stb.
Mondjuk fura, mert nekem a JAD illetve JD-GUI van Java source code generator toolnak VTS alatt.
Valami ötlet esetleg erre?
[ Szerkesztve ]
Persze. Tenyerelj rá a shiftdelre, töröld ki az Activityjeidből a BT logikát, és írj hozzá Service-t.
“All nothings are not equal.”
Sziasztok, mitől függ az, hogy az alkalmazásom áthelyezhető-e sdkártyára? Csak mert az én alkalmazásaim nem helyezhetőek át, ezért gondoltam, hogy azt valahol (manifestben v. ilyesmi) be kell állítani...
Amúgy annyira nem tiszta ez nekem de ha jól tudom amikor az alkalmazáskezelőben azt írja, hogy Áthelyezés SD kártyára akkor a telefon memóriájának "külső" részére érti. Tévedek?
"Tigris, tigris, csóvafény éjszakáknak erdején, mily kéz adta teneked szörnyü és szép termeted?" -William Blake-