Tworzę db sqlite w moim powietrzu dla aplikacji na Androida w następującej funkcji:
protected function createDatabase():void{
_sqlConnection = new SQLConnection();
_sqlConnection.addEventListener(SQLEvent.OPEN, openHandler);
_sqlConnection.addEventListener(SQLErrorEvent.ERROR, errorHandler);
var _sqlFolder:File = File.applicationStorageDirectory;
var _sqlFile:File = _sqlFolder.resolvePath("RouteLog.db");
_sqlConnection.open(_sqlFile);
}
Mogę z powodzeniem tworzyć tabele, wstawiać i wybierać, ale za każdym razem, gdy ponownie publikuję aplikację z flasha cs5.5, baza danych jest nadpisywana i wszystkie dane są tracone. Całkowicie zakłopotany, wszelkie pomysły są mile widziane!
Twoje zdrowie
[edytować]
Więc publikuję wersję debugowania bezpośrednio z programu flash pro przez USB. Gdy aplikacja jest inicjowana, wywołuje powyższą metodę, po otrzymaniu zdarzenia OPEN tworzy tabelę za pomocą następującej instrukcji SQL
var SQL:String =
"CREATE TABLE IF NOT EXISTS myRoutes (" +
"id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"name STRING, " +
"created DATE, " +
"duration NUMBER, " +
"waypoints OBJECT, " +
"avgSpeed NUMBER, " +
"distance NUMBER, " +
"rating NUMBER" + ")";
Mogę wtedy uruchomić kilka operacji, wstawić, wybrać itp. i wszystko jest zgodnie z oczekiwaniami. Jeśli wyjdę i ponownie uruchomię aplikację, poprzednie zestawy danych pozostaną nienaruszone, ale po ponownym opublikowaniu z pamięci flash wszelkie dane przechowywane z poprzedniej wersji zniknęły.
Zgodnie z dokumentacją SQLConnection.open() otworzy połączenie do podanego w parametrach pliku, a jeśli nie istnieje, utworzy je...
2 odpowiedzi
Po dalszych badaniach na forach Adobe myślę, że odpowiedź brzmi, że nie można zapobiec nadpisaniu plików przechowywanych w applicationStorageDirectory podczas ponownego publikowania z Flash Pro.
Tworzenie aplikacji wykorzystuje geolokalizację jako podstawową funkcję, więc potrzebuję prawdziwego zestawu danych do pracy. Rozwiązaniem, które w końcu zadziałało, było skopiowanie bazy danych z applicationStorageDirectory do documentsDirectory (karta SD), podczas gdy wciąż rozwijam aplikację (usunie to, jeśli kiedykolwiek trafi na rynek).
Zgodnie z dokumentacją AS3 dotyczącą flash.filesystem.File:
Po odinstalowaniu aplikacji AIR to, czy dezinstalator usunie katalog przechowywania aplikacji i jego pliki, zależy od platformy.
Możesz więc napotkać ten problem, jeśli ręcznie odinstalujesz aplikację, a następnie ponownie prześlesz ją na urządzenie. Więcej szczegółów na temat kroków pomoże, ponieważ na pewno dane utrzymywały się między publikowaniem aplikacji na urządzeniu z Androidem (chociaż korzystałem z programu Flash Builder).
Podobne pytania
Nowe pytania
actionscript-3
ActionScript 3 (AS3) to język programowania obiektowego (OOP) typu open source na platformach Adobe Flash i AIR. AS3 jest szeroko stosowany w aplikacjach RIA, aplikacjach mobilnych i aplikacjach komputerowych. (ActionScript 3 to dialekt języka ECMAScript).