2014-10-20 5 views
0

Я разрабатываю игру с Corona и пытаюсь разобраться, как обрабатывать приостановления и возобновления. У меня есть несколько основных вопросов:Как приостановить/возобновить работу с Corona SDK?

  1. Какие данные состояния находятся под угрозой, когда приложение приостановлено? Каждый и все? Просто объекты текстуры?

  2. Когда я поймаю событие ApplicationResume, есть ли способ определить, нужно ли восстанавливать предыдущее состояние или приостановлено ли короткое (например, вызов в Facebook), и все еще не повреждено? Могу ли я просто проверить, является ли какая-то выделенная переменная нулевой или все еще имеет ожидаемое значение?

  3. Когда я поймаю событие applicationSuspend, есть ли предел тому, что я могу сделать, прежде чем я вернусь из прослушивателя событий? Будет ли Android или iOS в конечном итоге терять терпение с помощью приложения, которое слишком медленно приостанавливает? В частности, я думаю о звонках на свой сервер; могу ли я обеспечить их завершение до отказа от управления ОС?

  4. Что именно делает запросExit()? Поскольку в iOS нет аналогов, я должен даже потрудиться с ним в своей версии Android?

Благодарим за помощь.

ответ

0
  1. Пока ваше приложение не выходит, все состояние должно быть сохранено. На Android текстуры будут потеряны, но будут автоматически восстановлены, когда приложение будет возобновлено. Вам не обязательно это делать.

  2. Возможно, вам следует попытаться приостановить/отменить любые таймеры или переходы, а затем возобновить их, когда вы вернетесь из безопасности. Если вы сохраните вещи, которые вы обычно сохраняете в файле настроек при их изменении, вам также не нужно сохранять и восстанавливать их.

  3. Да, есть предел тому, что вы можете сделать, и iOS наверняка нетерпелив. Скройте все открытые файлы и выйдите оттуда. Я не уверен в Android, но, наверное, так же нетерпелив.

  4. Да, если вы получаете keyEvent для кнопки «Назад», и вы находитесь на главном экране, вы должны вызвать функцию native.requestExit() вместо вызова os.exit(). Это гарантирует, что ваши приложения будут отключены правильно, а не просто убиты.

Роб