Использование статических переменных / классов - плохой подход с точки зрения удобства сопровождения и отладки.
Я использовал Activity.onRetainNonConfigurationInstance
, но я только сейчас обнаружил, что это устарело (вероятно, из-за сотовой илипотом). Activity.onRetainNonConfigurationInstance
Используя этот метод, просто вызовите Activity.getLastNonConfigurationInstance
, чтобы получить тот же объект, который вы вернули в onRetainNonConfigurationInstance
.Не забудьте проверить на нулевое значение и привести к нужному классу (вы можете вернуть / получить любой класс). Activity.getLastNonConfigurationInstance
Пример использования в псевдокоде будет:
onRetainNonConfigurationInstance:
return "I need to remember this next time";
onCreate:
...
String messageToShow = null;
Object data = getLastNonConfigurationInstance();
if(data != null)
messageToShow = (String)data;
else
messageToShow = "Nothing to show";
Итак, если вы нацеливаетесь на 2.xx, вы можетеиспользуйте этот метод.В противном случае Google рекомендует использовать Fragment.setRetainInstance
.Это обратно совместимо через пакет совместимости.
Fragment.setRetainInstance