Ориентация меняется с активностью, загружаемой из Интернета. Андроид

Я разрабатываю приложение, которое загружает твиты из твиттера. Когда мое приложение меняет ориентацию, действие снова загружает твиты (оно снова загружает те же твиты). Так какое же лучшее решение для такого случая? Использует ли android:configChanges="ориентация|keyboardHidden|screenSize" путь? Я читал, что это плохая практика. Спасибо


person Redes ConnectedGroup    schedule 23.04.2014    source источник


Ответы (1)


Вы можете переопределить onSaveInstanceState и onRestoreInstanceState, чтобы избежать повторной загрузки одних и тех же твитов.

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
    savedInstanceState.putSerializable(<Key>, <Value>);
    super.onSaveInstanceState(savedInstanceState);
}

При изменении ориентации восстановить сохраненные твиты.

[Изменить]
Кроме того, вы можете сделать это без переопределения onRestoreInstanceState:

public void onCreate(Bundle savedInstanceState) {
  if (savedInstanceState!= null) {
    value = savedInstanceState.getSerializable(<Key>);
  }
}

Дополнительная информация здесь.

person Green goblin    schedule 23.04.2014
comment
Спасибо за Ваш ответ. Итак, если, например, у меня есть 3 твита, я должен сделать: saveInstanceState.putSerializable(‹Key2›, ‹Tweet2›); saveInstanceState.putSerializable(‹Key3›, ‹Tweet3›); super.onSaveInstanceState(savedInstanceState); } - person Redes ConnectedGroup; 23.04.2014
comment
Это будет накладным расходом, если вы хотите увеличить количество отображаемых твитов. Я бы предложил для этого какой-нибудь ArrayList. - person Green goblin; 23.04.2014