Где лучше всего сохранить на мобильном устройстве Android с помощью AIR и как

Где лучше всего сохранить на мобильном устройстве Android с помощью AIR и как? Я пытаюсь выяснить, где я могу сохранить свой файл. Я создаю приложение MEMO, в котором пользователь может сохранить свой файл, мой вопрос: где лучшее место в Android Mobile, чтобы сохранить?


person Darvlaskie    schedule 15.04.2015    source источник
comment
Вам следует поискать аналог Shared Preferences или работу с базами данных в AIR   -  person Joaquin Iurchuk    schedule 15.04.2015
comment
Я уже дал ответ, но я думаю, что неясно, что вы на самом деле пытаетесь сделать. Вы пытаетесь сохранить данные, которые используются вашим приложением внутри, или файл, который пользователь ожидает использовать вне вашего приложения?   -  person Aaron Beall    schedule 15.04.2015


Ответы (1)


Именно для этого предназначен File.applicationStorageDirectory.

Вы можете сохранить любые данные в файл (XML, JSON, AMF, базу данных sqlite) и сохранить асинхронно, чтобы избежать зависаний пользовательского интерфейса.

Пример сохранения строковых данных (таких как сериализованный XML или JSON):

function save(data:String):void {
    var file:File = File.applicationStorageDirectory.resolvePath("preferences.data");
    var fileStream:FileStream = new FileStream();
    fileStream.open(file, FileMode.WRITE); // or openAsync()
    fileStream.writeUTFBytes(data);
    fileStream.close();
}

function load():String {
    var file:File = File.applicationStorageDirectory.resolvePath("preferences.data");
    var fileStream:FileStream = new FileStream();
    fileStream.open(file, FileMode.READ);
    var data:String = fileStream.readUTFBytes(fileStream.bytesAvailable);
    fileStream.close();
    return data;
}
person Aaron Beall    schedule 15.04.2015
comment
получил 2 вопроса Аарон. 1. Как создать папку и положить в нее сохраненный файл. 2. При попытке загрузить мой файл мое устройство Android говорит: «Файлы не найдены» (я использовалbrowForOpen) - person Darvlaskie; 15.04.2015
comment
1. Вы можете использовать File/createDirectory(), но я не уверен, что вы пытаетесь сделать, 2. есть ли файлы в каталоге, который вы просматриваете? applicationStorageDirectory специфичен для вашего приложения, это не каталог, в котором у пользователя обычно есть какие-либо файлы. Вы можете попробовать что-то вроде File.documentsDirectory. Подробнее о расположении файлов Android. - person Aaron Beall; 15.04.2015
comment
Где асинхронная часть? @Darvlaskie - я не уверен, что еще вы ожидаете получить здесь, чего не было в вашем первом вопросе ... - person BadFeelingAboutThis; 15.04.2015
comment
В моем примере не используется openAsync(), но использование этой функции на File является единственным отличием для записи, а для чтения вы ждете Event.COMPLETE на FileStream перед чтением данных. - person Aaron Beall; 15.04.2015
comment
PO не знает, как кодировать, и ему нужен бесплатный образец кода, делающий именно то, что он хочет, поэтому не думайте, что он сможет изменить ваш код, он этого не сделает. Лично я всегда игнорирую эти вопросы, поскольку здесь рекомендуется именно такой подход. Его следующий вопрос будет о том, как загрузить сохраненный файл на Android. - person BotMaster; 15.04.2015
comment
Привет, БотМастер. во-первых, я уже решил свою проблему. Во-вторых, зачем вы здесь, если не хотите помогать тем, кто менее опытен, чем вы? Какой смысл входить в систему, если вы не собираетесь помогать таким людям, как я? Наконец, LDMS и Аарон решили помочь мне, и я благодарен за это. Я не заставляю вас помогать мне. ЕСЛИ вы считаете, что мои вопросы слишком глупы для вас, то игнорируйте их. Это так просто - person Darvlaskie; 15.04.2015
comment
@Darvlaskie - это не убьет вас, если вы проголосуете за полезные ответы, подобные этому, и примете ответы, которые привели к вашему решению. Это действительно помогает вашему профилю StackOverflow. - person BadFeelingAboutThis; 16.04.2015