Как управлять состоянием приложения в Android (для разработчика iPhone) - PullRequest
11 голосов
/ 06 мая 2011

Я недавно запустил свое первое приложение для iPhone, и похоже, что люди в сообществе Android просят об этом ... поэтому я начал разработку с SDK.

Первое, что я заметил, это то, что в моем приложении для iPhone я буду хранить определенные переменные в сеансе в appDelegate.Поскольку у меня нет такой структуры в Android, мне любопытно, как разработчики Android отслеживают состояние приложения во всем приложении (надеюсь, без тонны одноэлементных объектов?)

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

Мое приложение имеет много специфичного для сеанса состояния и для первой итерации еще не поддерживает многозадачность: (

Ответы [ 3 ]

7 голосов
/ 06 мая 2011

Во-первых, приложение для Android может состоять из нескольких действий.

Если вы хотите поделиться состоянием между действиями, используйте Приложение класс: Как объявить глобальные переменные в Android?

Если у вас есть только одно действие, тогда вы можете сохранить состояние там.

Осторожно: когда активность не активна (ее GUI не отображается), это не значит, что она убита.Поэтому, если вы используете свое приложение и затем закрываете его, открываете другое приложение и затем возвращаетесь к своему приложению, оно может быть все еще «живым» (сохраненным в памяти), и состояние будет сохранено.

Лучший способчтобы справиться с этим, нужно подключиться к жизненному циклу Activity .Затем вы можете установить / сбросить данные по желанию.

1 голос
/ 06 мая 2011

Если вы хотите закрыть приложение, когда пользователь нажимает клавишу «home», вы можете вызвать метод finish () для вашего метода onPause.

Смотрите эту ссылку: Убийство андроид приложения на паузе

1 голос
/ 06 мая 2011

Я считаю, что Singletons - лучший способ сохранить состояние приложения в приложениях Android.Вы можете прослушивать, когда пользователь покидает приложение, с помощью методов onPause() и onStop() текущей в данный момент Деятельности, и делать все, что вы хотите с вашими данными в этот момент.Не стоит пытаться переопределить управление жизненным циклом ОС вашего приложения (например, пытаться убить ваш процесс при нажатии Back).Если вы хотите, чтобы состояние приложения сбрасывалось каждый раз, когда пользователь покидает приложение (с помощью нажатия «Домой», или прерывается телефонным звонком, уведомлением или чем-то еще), просто поместите все данные своего сеанса в само действие.Когда пользователь уходит, он будет уничтожен и воссоздан, когда пользователь вернется.

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

http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...