Сохранить состояние активности Android

1

Я пытаюсь создать игру LUDO, и когда пользователь останавливает игру, я хочу сохранить состояние игры (состояние активности).

Я понял, что мне нужно сохранить состояние в методе OnPause(), но есть много переменных, которые мне нужно сохранить, и все они меняются во времени, поэтому я не уверен, что могу сохранить состояние таким образом.

Могу ли я сохранить весь метод Activity и OnResume(), чтобы восстановить его и продолжить игру?

Благодарю.

Теги:
android-activity
state
activity-lifecycle

2 ответа

1
Лучший ответ

Не знаю, что вы имеете в виду, изменяя во времени. Вы говорите, что ваша игра прогрессирует, даже когда игрок не играет? Обычно вы сохраняете только минимальный объем информации, необходимой для воссоздания текущего состояния. Для настольной игры это может быть расположение частей каждого игрока, и в свою очередь это так.

Если у вас действительно так много игрового состояния, что было бы громоздко сохранять и восстанавливать, или игра должна развиваться, пока активность закрыта, или воссоздание состояния из статических данных слишком сложно (все предложения, которые я, вероятно, оспаривал бы, но мы может принять это за обсуждение), тогда я бы предложил вам написать его как приложение клиент-сервер, где Android-сервис запускает движок игры, а ваша активность выполняет все визуальные эффекты и взаимодействие с пользователем.

  • 0
    Так должна работать игра. Он обновляет экран постоянно, и когда пользователь и т. Д. Нажимает на плеер, чтобы съесть другую игру, я создаю анимацию (изменяя параметры во времени), поэтому можно изменить некоторые параметры, и тогда пользователь сможет выйти из приложения, а некоторые параметры не будут синхронизированы (если пользователь выход в середине какого-то метода). Поэтому мне нужно сохранить всю активность, если это возможно, и когда я восстановил ее, я продолжаю там, где активность остановилась (из середины метода) в прошлый раз. Это возможно?
  • 0
    Было бы непрактично замораживать всю деятельность и точно восстанавливать ее. Вы должны выяснить, какие локальные переменные важны для воссоздания подходящего факсимильного сообщения оригинала. (См. Stackoverflow.com/a/151940/517561 для примера кода.) Незначительные детали, например, в какой именно фазе циклической анимации находится моб, вероятно, не стоят усилий.
1

Я думаю, что вы ищете Как сохранить состояние приложения Android.

В документации также содержится подробная информация о сохранении постоянного состояния с onPause.

  • 0
    Так должна работать игра. Он обновляет экран постоянно, и когда пользователь и т. Д. Нажимает на плеер, чтобы съесть другую игру, я создаю анимацию (изменяя параметры во времени), поэтому можно изменить некоторые параметры, и тогда пользователь сможет выйти из приложения, а некоторые параметры не будут синхронизированы (если пользователь выход в середине какого-то метода). Поэтому мне нужно сохранить всю активность, если это возможно, и когда я восстановил ее, я продолжаю там, где активность остановилась (из середины метода) в прошлый раз. Это возможно? У вас есть такое же предложение? Благодарю.
  • 1
    Когда действие завершается, оно всегда вызывает onPause , поэтому вы, вероятно, захотите сохранить большую часть состояния в этом методе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню