Blackberry 7 - felszabadító SDK több apps problémákat okoz

szavazat
0

Alább kérdéseket vitattak elszigetelten, de nem tudtam megoldást találni, amely működik. Ezért a kiküldetés teljes történetét és problémák listáját.
Építünk egy SDK (midletet jar) által fogyasztott több apps. Az SDK használ perzisztens raktár, bizonyos adatokat. Most pár kérdés sújtó minket:
1. A gombot, hogy a boltban már kódolva az SDK. Most több alkalmazás megpróbál belépni a boltban ugyanaz a kulcs érték, ami ellentmondásos kérdéseket.
2. A tárgy Persistable csomag / osztály neve ugyanaz több alkalmazásban. Emiatt megkapjuk a „Class Multiply meghatározott” hibát indít az alkalmazásokat.

Most 2, akkor már rágódott alábbi lehetőségek, de ezek egyike sem tűnik, hogy megoldja a problémát:
1. Ne növelje a szabványos objektumok, mint a vektor és szabványos objektumokat.
Probléma: újrahasznosítás adat elvész okoz konfliktusokat.
2. Építsd a könyvtár egyedi nevet minden alkalmazás használja.
Kérdések: Ez azt jelentené, mi lesz, hogy kiadja a különböző SDK minden ügyfél, aki használni akarja.
3. Ellenőrizze, hogy a Persistable objektum osztály már létezik betöltése előtt a csomagot a következő alkalmazást.
Kérdések: Mi történik, ha az első csomag unistalled? az osztály típusú lenne hagyni?
4. Kérdezze meg a app, hogy hajtsák végre a Persistable felület és adja át a kulcsot a visszahívás.
Ez nem hangzik jól, hogy kérje az alkalmazás átadni egyes értékek csak azért, mert nem vagyunk képesek használni a tartós tárolására.

Tehát a most SDK segítségével Persistable tárgyakat úgy tűnik, hogy teljesen hibás. Vagy mi hiányzik valami?
Minden más alternatív javaslatát, hogy elérjék a feladatot is nagyon szívesen.

A kérdést 12/08/2014 13:15
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
0

ha van egy könyvtár, amely funkciók megoszthatók a különböző alkalmazások, akkor ez, mint egy könyvtár tőkehal fájlt, és adja meg ezt a tőkehal fájlt a könyvtár után összeállításakor a függő projektek.

Például, ha a könyvtár neve mylib_version1_00.cod, akkor a többi projektek a következő fájlokat tartalmazza fordítás után:

A Project1:

  • project1.cod
  • mylib_version1_00.cod

A projekt2:

  • project2.cod
  • mylib_version1_00.cod

......

A for ProjectN:

  • projectN.cod
  • mylib_version1_00.cod

telepítés során minden projekt fogja telepíteni mylib.codfájlt, és ha van már telepítve van mylib.coda fájl felülírja, és ez fog kerülni „class xxx többszörösen definiált”.

Ez a hiba akkor fordul elő, mert minden alkalmazás fut egy JVM fokon. Tehát, ha feltölteni eszköz a tőkehal fájl nevét, amely már létezik, akkor kell írni.

Abban az esetben, akkor kiadja a következő verzió a könyvtár nevét a tőkehal fájlt

mylib_version2_00.cod

és használja verziószám csomag neve, például:

com.yourcompany.yourpoduct.yourlibary.version1

com.yourcompany.yourpoduct.yourlibary.version2

Ebben az esetben lehetőség van ugyanazon az eszközön tőkehal fájlok: mylib_version1_00.codés mylib_version2_00.codés nem fog termelni „class xxx többszörösen definiált” hiba.

Most a kitartás. Ne belekódolják kitartás kulcsfontosságú a könyvtárában. Készíts egy absztrakt osztály, és kijelentik, egy absztrakt módszer, mint:

public long getPersistenceKey();

amely egy egyéni perzisztencia billentyűvel egy tárgyat. És ezt a módszert használja hívást, hogy a kód nem szűnik meg az információkat a absztrakt osztály.

és a gyermekek osztályok, használt egyéni kérelmek csak felülírja ezt a módszert különböző értékeket minden egyes termék. És nem lesz többé confilcts.

Remélem ez segít.

Válaszolt 14/08/2014 07:17
a forrás felhasználó

szavazat
0

Nem lehet csak egy persistable osztály egy adott classname az egész készüléket. Ha két apps van azonos kategóriájú, persistable, kapsz egy Class Szorzás meghatározott ellenőrzési hiba, a második alkalmazás nem telepíthető egyáltalán.

Az egyetlen módja, hogy használja a beépített persistable osztályok tárolására persistable adatokat az SDK. Azonban ez persitable adat nem kerül törlésre, ha azokat az alkalmazásokat tartalmazó SDK már eltávolították, a felhasználó által. Azt is meg kell, hogy vigyázzon a változat az adatok, hogy visszafelé kompatibilis.

Tárolja az adatokat egy beépített osztály, mint hash, IntHashtable vagy Vector. Akkor levelet wrapper osztály, amely beolvassa és beállítja ezt az információt. Alapvetően akkor kell térképszerkesztéshez persistable osztályt egy hash vagy Vector.

Ismét emlékszik, soha ne tegyen semmilyen osztály, amely nem beépített ebbe az adattárba. Ellenkező esetben a adattárba kerülnek törlésre az app uninstall.

Remélem segít.

Válaszolt 20/09/2014 06:27
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more