Hirdetés

2024. május 5., vasárnap

Gyorskeresés

Hozzászólások

(#2151) eastsider


eastsider
nagyúr

ha az activity háttérben van, de fut (onStop), akkor szeretnék csinálni valamit periodikuisan, de csak, ha fut a háttérben, akkor is kell service?
viszont, ha előtérben van az alkalmazás akkor nem kell végrehajtani.
egyébknt URL reload

[ Szerkesztve ]

(#2152) Karma válasza eastsider (#2151) üzenetére


Karma
félisten

Lásd az előző folyamatábrát :N
Pont ekkor kéne a Service. Vagy valamit nagyon átgondolni, mert szinte biztos vagyok benne, hogy vannak jobb megoldások (GCM, AlarmManager pl.)

[ Szerkesztve ]

“All nothings are not equal.”

(#2153) thon73 válasza kemkriszt98 (#2144) üzenetére


thon73
tag

MIt jelent, hogy "teljesen rossz helyen"? Rossz kezdőponton v. csak rossz irányban/méretben? Én első körben leellenőrizném az összes értéket log-ban, aztán kiderül...

(#2154) eastsider válasza Karma (#2152) üzenetére


eastsider
nagyúr

:R
igaziból annyi, hogy 30 percenként újra kell tölteni a weblapot, ha valaki visszalép az appba a frissített weblapot lássa.
ez akkor érvényes, ha onPauseban van az alkalmazás... (rosszul írtam az előbb, nem onStop)
ha fullra kilépek akkor úgy is újratöltöm mindenképpen

[ Szerkesztve ]

(#2155) Karma válasza eastsider (#2154) üzenetére


Karma
félisten

Na, ezen nem segít a Service, viszont a többi se. Ennek mobilon semmi értelme.

OnResume-ban nézd meg, hogy mennyi idő telt el az onPause óta (mentsd el pl. a System.currentTimeMillis értékét), és ha több mint fél óra, kezdj frissítéssel.

“All nothings are not equal.”

(#2156) eastsider válasza Karma (#2155) üzenetére


eastsider
nagyúr

köszi!
én is erre jutottam :)

(#2157) _kovi_


_kovi_
aktív tag

Sziasztok!

Egyetemről elhozott elvileg beállított Eclipse-ben nincs új projekt esetén graphics layout.
A oldalt a res-ben a layout tök üres, ki sem nyitható.

(#2158) thon73


thon73
tag

Tapasztalt guruktól szeretnék segítséget kérni!
Korábban azt mondtátok, (és ezzel a doksi is, meg még én is egyetértünk), hogy egy KÖZÖS file írása több file-ból és több thread-ból veszélyes, mert a kiírt tartalom összekeveredik.

Tesztelés szempontjából megpróbáltam ezt elérni, (mármint, hogy a program rossz legyen, és keveredjenek az adatok), és LEHETETLEN! Minden ellenőrzést kivettem, és már nem is Channel-en keresztül próbálkozom (ami elvileg thread safe). Két, teljesen más package nevű program van, mindkettő több szálat futtat. Az adatok mindkét program minden száljáról megérkeznek.

//Nyitás közös
OutputStreamWriter stream = null;
File file = new File( Environment.getExternalStorageDirectory(), "ThreadCheck.log");
stream = new OutputStreamWriter( new FileOutputStream(file, true) );

//Több ilyen thread van:
new Thread(new Runnable() {
public void run() {
try {
for (int n = 1; n < 8000; n++) {
stream.append( "Egyes" );
}
}
catch (Exception e) {
Log.e("THREAD", e.toString());
}
}
} ).start();

A kész file az "Egyes", "Kettes" stb. szavakat egyben, épen tartalmazza.

Én értettem félre valamit, vagy ez egy Android tulajdonság, amiben meg lehet bízni? :F
Vagy hogyan tudom a programot "elrontani", és honnan tudhatom meg az ellenkezőjét: hogy minden körülmény között jól fog működni?

Előre is köszönöm!

(((Egy "log" szerű programrészre lenne szükségem: több file, esetleg több thread is ír ugyanabba a file-ba üzeneteket. Az üzenetek sorrendje stb. nem lényeges, csak az, hogy egy üzenet egyben maradjon. Ez ugye megvalósul, csak abban nem vagyok biztos, hogy ez így biztonságosan jó-e.)))

(#2159) WonderCSabo válasza _kovi_ (#2157) üzenetére


WonderCSabo
félisten

A layout file ok? Posztold be.

thon73: Mivel a Writer osztályban a write metódus korrekten szinkronizált, az egyes stringek amiket kiírsz, valóban nem fognak összekeveredni, ezen nincs semmi meglepő.

Viszont ha logolni akarsz, miért nem használsz egy logger frameworkot?

(#2160) thon73 válasza WonderCSabo (#2159) üzenetére


thon73
tag

:W :W Ja, akkor mégiscsak én értettem félre. Nem csoda, hogy nem sikerült megkeverni a gépet... Viszont akkor jól fog működni amit írtam! :C

(((Ezt az egyszerű log-ot csak úgy hirtelen készítettem, amikor a még-nem-rootolt tab nem volt hajlandó kiírni a rám vonatkozó system log-ot (AIDE-t használtam külföldön, net nemigen volt). És a feladatát tökéletesen el is látta. Később univerzálissá - pontosabban thread-safe-é akartam tenni, csak megzavart, amiket olvastam: eredetileg is thread-safe volt :B )))

(((Most meg van egy nagy adathalmazom, amit a program szépen feldolgoz. Arra gondoltam, hogy nem fogom minden csip-csup hibáért leállítani az egész folyamatot, hanem szépen log-olja a hibákat, és csak a végén mondja meg, volt-e hibás (nem importálható) adat. Erre viszont pont kéznél volt ez - a logtól független - secunder log. Egyébként ez tök jól működik, abban nem voltam biztos, hogy minden körülmény között fogja-e ezt produkálni...)))

Hálás köszönet, nem rongálom tovább a kiírást... :R :R :R

(#2161) WonderCSabo válasza thon73 (#2160) üzenetére


WonderCSabo
félisten

(#2162) eastsider


eastsider
nagyúr

Sziasztok!
egy string arrayben (ami res-ből jön) szeretném megkapni egy adott item indexét

final String[] aperture_array = getResources().getStringArray(R.array.aperture_array);
for (String s: aperture_array) {
int i = s.indexOf(aperture);
if (i >= 0) {
apertureWheel.setCurrentItem(i);
}
}

de 0-t ad vissza

hogy kellene ezt?

[ Szerkesztve ]

(#2163) eastsider válasza eastsider (#2162) üzenetére


eastsider
nagyúr

nem tudom mennyire jó, de működik:
List<String> apertureList = Arrays.asList(aperture_array);
int index=apertureList.indexOf(aperture);

(#2164) thon73 válasza eastsider (#2162) üzenetére


thon73
tag

Sztem. az s az egy String. Ha egy objektomra vagy kíváncsi egy listában, akkor az egészben keresd! Most épp egy substring-et keresel!
Sztem. az egészet ráadásul arraylistté is kell alakítani, ahhoz, hogy működjön:
Arrays.asList(aperture_array).indexOf( aperture ); - feltéve, h. aperture egy string.

(#2165) _kovi_ válasza WonderCSabo (#2159) üzenetére


_kovi_
aktív tag

Nincs benne layout file. Nem is tudod lenyitni a fület.

(#2166) WonderCSabo válasza _kovi_ (#2165) üzenetére


WonderCSabo
félisten

Gondolom azért, mert tök üres a res mappa nem? Nézd meg a fájlrendszerben. Ha nem üres akkor projektre jobb gomb -> refresh.

(#2167) _kovi_ válasza WonderCSabo (#2166) üzenetére


_kovi_
aktív tag

Nem, a res mappában sok minden van. Ha lenyitod pl a values mappát, akkor abban ugye ott a strings.xml, styles.xml. De a layout nem kinyitható... :F

(#2168) eastsider válasza _kovi_ (#2167) üzenetére


eastsider
nagyúr

vagyis a /res/layout mappák üresek, (attól, hogy a values mappa nem üres, nincs kizárva, hogy a layoutok ne legyenek üresek)
nézd meg explorerben, hogy mi van vele

(#2169) thon73 válasza eastsider (#2168) üzenetére


thon73
tag

Bocs, de nem egyszerűbb felrakni újra ez egész csomagot? Ez az "egyetemen beállított, hazavitt" dolog szerintem tartalmaz egy-két buktatót. Az eredeti csomag letöltve/felrakva teljesen üzemkész; (a JavaJDK-t, meg a drivert amúgy sem az kezeli.) Csak úgy kérdezem.

Bocs eastsider, nem frissítettem,mielőtt válaszoltam, de a lényeg: az jó megoldás amit írsz!

(#2170) eastsider válasza thon73 (#2169) üzenetére


eastsider
nagyúr

:)

plusz érdemes a generált fájlokat törölni, az sosem jó...

(#2171) _kovi_ válasza eastsider (#2168) üzenetére


_kovi_
aktív tag

Ezt nem értem... :(

Ráadásul egy, a suliban használt példaprogramot beimportáltam és úgy sem jön elő a grafikus layout.

(#2172) eastsider válasza _kovi_ (#2171) üzenetére


eastsider
nagyúr

menj bele fájlkezelővel a layout mappába és nézd meg mi van benne :)

(#2173) _kovi_ válasza eastsider (#2172) üzenetére


_kovi_
aktív tag

Üres. :)

(#2174) eastsider


eastsider
nagyúr

van valami módja a custom dialogfragment title backgroundot megváltoztatni?
megváltoztatom a backgroundot, de a title mögött fehér marad
[link] a kék vonalig fehér marad mindenképp...

(#2175) thon73 válasza eastsider (#2174) üzenetére


thon73
tag

Esetleg onCreateView használata onCreateDialog helyett? Bár a színt nem változtattam benne...

(#2176) vazee00


vazee00
tag

Tisztelt fórumozók!

Kezdő vagyok még e téren, így segítséget szeretnék kérni. Androidban hogyan oldható meg az adatbázis kapcsolat adatainak titkosítása, hogy minél kevésbé legyen visszafejthető? Főként az adatbázis jelszóra gondolok.
Elég sokat keresgéltem, de valódi, hasznos dolgokra annál kevésbé leltem.

Üdv.

FayRPG: fayrpg.hu | Zöldhulladék, zöldség-gyümölcs hulladék újrahasznosítás: bioferet.hu | fayrpg.hu | kukamosok.hu | tejfelvasarlas.jomekft.hu | fantasyworld.hu | blackcatpub.hu | energym.hu | keramika.hu | TheVR Android App: thevrapp.hu | személyi edzés érd: stepandmove.hu

(#2177) eastsider válasza thon73 (#2175) üzenetére


eastsider
nagyúr

onCreateView-et használok. de nem tudom, hogy lehetne megváltoztatni...
így kapcsoltam ki a titlet:
getDialog().getWindow().requestFeature(STYLE_NO_TITLE);

(#2178) Karma válasza vazee00 (#2176) üzenetére


Karma
félisten

Sok pénzért van rá céleszköz, de alapvetően könnyen visszafejthető a legtöbb házi offline megoldás (pl. az egy dolog, hogy egy hosszú kulccsal titkosítod a DB jelszót, de utána hova rakod ezt a kulcsot?).

“All nothings are not equal.”

(#2179) bAtt001


bAtt001
addikt

sziasztok

[link] egy ilyen szám kiválasztót szeretnék tenni a beállítások menümbe, hogy keressek erre rá hogy megtaláljam a leírást hozzá? hirtelen nem találtam róla semmit :(

(#2180) kemkriszt98 válasza bAtt001 (#2179) üzenetére


kemkriszt98
aktív tag

NumberPicker ? De ez csak tipp

"Tigris, tigris, csóvafény éjszakáknak erdején, mily kéz adta teneked szörnyü és szép termeted?" -William Blake-

(#2181) Karma válasza bAtt001 (#2179) üzenetére


Karma
félisten

android numberpicker preference

És ezzel a kereséssel találtam is komplett megoldást a problémára.

“All nothings are not equal.”

(#2182) trisztan94


trisztan94
őstag

Sziasztok!

Kaptam egy .apk fájlt, ami szerint kellene megcsinálnom egy másik platformra az adott appot. Nekem sajnos most nincs androidos készülékem amire telepíteni tudnám, ezért az egyetlen lehetőségem az, hogy emulátorban futtatom.

Első dolgom az volt, hogy kiderítettem a minimum és a target sdk verziókat:

A: android:minSdkVersion(0x0101020c)=(type 0x10)0xe
A: android:targetSdkVersion(0x01010270)=(type 0x10)0x12

Ha jól tudom, nekem itt a sor végén lévő hex szám a lényeg, tehát a 0xe és a 0x12, ami 14 és 18 decimálisban. Ezek után megnéztem az Android SDK Managerben, hogy fent van-e valamelyik kompatibilis SDK:

Tehát fent van a 18-as.

Próbáltam telepíteni adb install paranccsal, de ezt a hibaüzenetet kapom:

Failure [INSTALL_FAILED_OLDER_SDK]

Mit csinálok rosszul? :F

[ Szerkesztve ]

https://heureka-kreativ.hu

(#2183) Karma válasza trisztan94 (#2182) üzenetére


Karma
félisten

Nem rossz próbálkozás, de nem is célravezető.

Ajánlanám, hogy tedd fel a Virtuous Ten Studio-t, amivel visszafejtheted forráskód szintig az APK-t, valamit a Genymotiont, ami egy VirtualBox alapú, sokkal gyorsabb emulátort ad, Google API támogatással.

“All nothings are not equal.”

(#2184) Karma válasza trisztan94 (#2182) üzenetére


Karma
félisten

Ja egyébként azt el se árultad, hogy milyen AVD-t hoztál létre. Az csak egy szükséges feltétele a játékodnak, hogy legyen fenn 18-as SDK és system image, de olyan virtuális telefont kell létrehoznod, ami ezeket használja is.

“All nothings are not equal.”

(#2185) trisztan94 válasza Karma (#2183) üzenetére


trisztan94
őstag

Köszönöm, nem is ismertem ezeket az eszközöket, nagyon szuperek! :K

Esetleg nem tudsz egy cross platform (vagy natív OSX) alternatívát a VTS-re? :F

A Genymotion pedig elképesztő, végül arra telepítettem az appot, nem is értem miért szenvedtem ezzel eddig :DDD

Köszönöm! :R

https://heureka-kreativ.hu

(#2186) Karma válasza trisztan94 (#2185) üzenetére


Karma
félisten

Ennyire integrált eszközt nem ismerek másik platformokra, mint a VTS. Némely komponense elvileg kézzel is használható, de nem is nagyon erőltettem sose...

Van még egy tool, a dex2jar, ami megy OSX-en is. Ha a jar megvan, onnan meg a JAD-dal tudsz Java forrásra áttérni; de mondjuk az XML-eket nem tudom hogyan nyerheted ki.

Javaslom a Boot Campet vagy virtualizációt :)

“All nothings are not equal.”

(#2187) trisztan94 válasza Karma (#2186) üzenetére


trisztan94
őstag

Meglestem Windows-on. Valamiért nem tudom visszafejteni vele az osztályokat, csak néhány .xml fájlt és a képeket.
Próbáltam apk- és m10-projektként is importálni.

Ezeket a hibaüzeneteket dobálja:

ScriptManager.SetActiveConfigurationViaName
Can't find script configuration with name: default

BaseModule.ProcessVariable
hu.trisztan.csakideirokvalamit -> Decompile resources: Empty setting value, name: FrameworkTag

És csak ennyit kapok vissza, osztályokat nem:

Ez normális? Vagy mit csinálok rosszul? :F

https://heureka-kreativ.hu

(#2188) Karma válasza trisztan94 (#2187) üzenetére


Karma
félisten

APK projektként kell kezdened, odáig biztos (az M10 HTC-specifikus témacsomag emlékeim szerint).

A hiba alapján nem adtál neki framework.jar-t - ha fut a GenyMotion, akkor a Remote file gombbal elvileg ki tudja szolgálni magát.

“All nothings are not equal.”

(#2189) tboy93 válasza Karma (#2183) üzenetére


tboy93
nagyúr

Az apk-t vissza lehet fejteni forráskódra? :Y

(#2190) Karma válasza tboy93 (#2189) üzenetére


Karma
félisten

Igen, nagyon könnyen.

A ProGuard például ezért is fontos, mert bár a forrásig visszajutni könnyű, az obfuszkálás nagyon megnehezíti azt, hogy vissza lehessen élni vele.

“All nothings are not equal.”

(#2191) tboy93 válasza Karma (#2190) üzenetére


tboy93
nagyúr

Mesélnél nekem erről a ProGuardról kicsit többet? Hogyan működik ez pontosan? :R

[ Szerkesztve ]

(#2192) trisztan94 válasza Karma (#2188) üzenetére


trisztan94
őstag

Köszönöm, így sikerült! :R

https://heureka-kreativ.hu

(#2193) WonderCSabo válasza tboy93 (#2191) üzenetére


WonderCSabo
félisten

A ProGuard egy bytecode szintű obfuszkáló, optimalizáló és méretcsökkentő eszköz. Az obfuszkáló részének lényege az, hogy az osztályok neveit, metódusak neveit, mezők neveit stb. átnevezi értelmetlen rövid kifejezésekre, mint "a", "a.c.d", stb. Ennek köszönhetően ha visszafordítják is .java fájlokká az appodat, akkor sem lehet egykönnyen kibogozni, mit is csinál pontosan a forrás. De ezt a Google első találat a hivatalos oldal sokkal szebben írja le. A Proguard fizetős verziója a DexGuard, ami picit többet tud.

A ProGuard elsőre nagyszerű dolognak tűnik, de valójában a használatához hozzáértés és rendkívül hosszú konfigolás és tesztelés szükséges, mert az obfuszkáció miatt nagyon nehéz látni, hogy hol csapja szét az appodat. És hidd el nekem - szét fogja csapni.

(#2194) tboy93 válasza WonderCSabo (#2193) üzenetére


tboy93
nagyúr

Köszönöm! :R

Viszont ha nem élek ezzel a lehetőséggel, akkor - ha jól értem - bárki visszafejtheti az appomat pillanatok alatt. Ennyi erővel open source is lehetne :DDD

(#2195) Karma válasza tboy93 (#2194) üzenetére


Karma
félisten

Igen, enélkül a csak-Java alkalmazásokat elég könnyen vissza lehet fejteni. Onnantól a lehetőségek elég tágak... Az ártatlan vizsgálódáson túl lehet sok gonoszságot is művelni, például átírni benne egy-két apróságot, kiiktatni valami házi védelmet, becsempészni egy kis trójait, átnevezni, és kiadni saját (vagy az eredeti) nevén.

4.1-től kezdve elvileg a fizetős alkalmazások már titkosítottak, úgyhogy ha régebbi telefonra meg alternatív csatornákon nem terjeszted a programod, akkor az már biztonságban van.

“All nothings are not equal.”

(#2196) eastsider


eastsider
nagyúr

Sziasztok!

camera intenttel visszatérve és elforgatva a elforgatásra null imageURI-ra milyen megoldást tudtok?
manifestben: android:configChanges="orientation" eddig ment...

(#2197) Karma válasza eastsider (#2196) üzenetére


Karma
félisten

Ezt most nem sikerült szerintem annyira érthetően megfogalmaznod... Szóval indítasz egy camera intentet, visszatér, elfordul az activity, aminek hatására új példány jön létre belőle és elveszik a lőtt kép?

Mert akkor vagy onSaveInstanceState/onRestoreInstanceState-et kéne használnod (és elmenteni lepusztulás előtt a kapott URI-t), vagy fragmenttel végezni a fotózást.

“All nothings are not equal.”

(#2198) eastsider válasza Karma (#2197) üzenetére


eastsider
nagyúr

egy dialogFragmentről indítok egy camera intentet.
és ha visszatér, és elfordítom az eszközt, akkor lesz null
szóval, ha alapból visszatér, nem tűnik el, csak, ha elfordítom a képet

használok természetesen, azért furi
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
if (mCurrentPhotoPath != null) {
savedInstanceState.putString(CAPTURED_PHOTO_PATH_KEY,
mCurrentPhotoPath);
}
if (mCapturedImageURI != null) {
savedInstanceState.putString(CAPTURED_PHOTO_URI_KEY,
mCapturedImageURI.toString());
}
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
if (savedInstanceState.containsKey(CAPTURED_PHOTO_PATH_KEY)) {
mCurrentPhotoPath = savedInstanceState
.getString(CAPTURED_PHOTO_PATH_KEY);
}
if (savedInstanceState.containsKey(CAPTURED_PHOTO_URI_KEY)) {
mCapturedImageURI = Uri.parse(savedInstanceState
.getString(CAPTURED_PHOTO_URI_KEY));
}

}

[ Szerkesztve ]

(#2199) eastsider válasza eastsider (#2198) üzenetére


eastsider
nagyúr

megtaláltam:
ezt használom: [link]

(#2200) thon73


thon73
tag

Van egy static metódusokat tartalmazó osztályom. Ez az osztály néhány belső adatot szintén static osztályváltozókban tárol. Amit a konfigurációs változások és singletonok kapcsán olvastam, kissé elbizonytalnított.

- A program újraindításakor (konfigurációs változás miatt) vajon megmaradnak-e ezek az adatok(gondolom ez a helyzet), vagy új osztály (új adatokkal keletkezik?) Hogyan lehet kikényszeríteni, hogy az osztály újrainicializálja az adatait?

- Van-e arra esély, hogy a program újraindítás nélkül (pl. ha csak háttérbe kerül) egyszer csak bezárja ezt az osztályt, aztán újraindítja újrainicializált adatokkal?

Nekem az kellene, hogy minden indítás üres adatokat eredményezzen, viszont azok a program újraindulásáig megmaradjanak. És a hab a tortán: lehetőleg NE legyen köze az Activity-hez, context-hez. (Uis. egy független részben szerepelnek a metódushívások.) Vajon ez megoldható?

Copyright © 2000-2024 PROHARDVER Informatikai Kft.