Я разрабатываю приложение, которое загружает твиты из твиттера. Когда мое приложение меняет ориентацию, действие снова загружает твиты (оно снова загружает те же твиты). Так какое же лучшее решение для такого случая? Использует ли android:configChanges="ориентация|keyboardHidden|screenSize" путь? Я читал, что это плохая практика. Спасибо
Ориентация меняется с активностью, загружаемой из Интернета. Андроид
Ответы (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
Спасибо за Ваш ответ. Итак, если, например, у меня есть 3 твита, я должен сделать: saveInstanceState.putSerializable(‹Key2›, ‹Tweet2›); saveInstanceState.putSerializable(‹Key3›, ‹Tweet3›); super.onSaveInstanceState(savedInstanceState); }
- person Redes ConnectedGroup; 23.04.2014
Это будет накладным расходом, если вы хотите увеличить количество отображаемых твитов. Я бы предложил для этого какой-нибудь ArrayList.
- person Green goblin; 23.04.2014