2011-01-18 2 views
6

Я только что прочитал о сохранении моего приложения для Android и наткнулся на onRetainNonConfigurationInstance. Но, читая documentation, я заметил это предложение:Должен ли я реализовать onRetainNonConfigurationInstance?

Эта функция называется чисто оптимизацией, и вы не должны полагаться на ее вызов.

Так что я задаюсь вопросом: когда действительно имеет смысл использовать этот метод. Если я не могу полагаться на его вызов, мне нужен еще один механизм для передачи состояния в любом случае (что в моем случае будет некоторой сериализацией). Поэтому, если у меня нет каких-либо достижений производительности, есть ли какая-то причина, по которой я должен идти onRetainNonConfigurationInstance?

Если бы это было позволено, я бы с удовольствием его использовал, но если это не так, это кажется бесполезным.

Я что-то упустил? Когда вы используете этот метод? Как вы будете поддерживать сетевое соединение или что-то в этом роде?

Спасибо!

ответ

12

Что означает документация, так это случаи, когда активность не будет воссоздана немедленно, и в этом случае onRetainNonConfigurationInstance() не будет вызван. Вы не можете использовать этот метод для сохранения данных. Он используется только для переноса объектов, которые необходимо создать при изменении конфигурации.

+0

ahh, звучит хорошо! Поэтому я могу использовать его для изменения ориентации и полагаться на его вызов в этом случае, правильно? – Philipp

+1

Это происходит поздно, но всем, кто хочет узнать подробности об этом, я предлагаю прочитать ответ CommonsWare здесь: http://stackoverflow.com/questions/4285877/which-one-to-use-onsaveinstancestate-vs-onretainnonconfigurationinstance –