В моем приложении Android я загрузил некоторые изображения и данные из Интернета в расширяемый список. И я обработал изменения ориентации следующим образом.Ориентация экрана Android на Android?
@Override
public Object onRetainNonConfigurationInstance() {
isOrentationChnged=true;
final Object data = arrGroupelements;
return data;
}
в моем OnCreate()
if(!isOrentationChnged){
new LongRunning().execute();
}else{
if((String[][])getLastNonConfigurationInstance()==null){
new LongRunning().execute();
}else{
arrGroupelements= (String[][]) getLastNonConfigurationInstance();
expList.setAdapter(new ExpAdapter(cont));
}
}
isOrentationChnged=false;
LongRunning является AsynacTask, которые используются для получения данных из Интернета и загружает предварительно загружены данные после изменения ориентации (без получения новых данных из Интернета снова), но он очень медленный. Есть ли альтернативный способ сделать это эффективно?
Вы видели [это] (http://developer.android.com/resources/articles/faster-screen-orientation-change.html)? – Ghost
Да, я видел, что в соответствии с этим я использовал методы onRetainNonConfigurationInstance() и getLastNonConfigurationInstance(), как указано выше. Он работает нормально, но очень медленно, поэтому я должен знать альтернативу, чтобы сделать это эффективно. –
is ** isOrentationChnged ** статическая переменная? Вы уверены, что LongRunning(). Execute() вызывается ** не ** при изменении ориентации? –