Android сохраняет определенные значения при вращении - PullRequest
0 голосов
/ 22 сентября 2011

У меня есть действие, которое помимо прочего запускает асинхронные задачи, я не хочу, чтобы все сбрасывалось при изменении макета.

Я поместил это в элемент манифеста действия android:configChanges="orientation", но, к сожалению, действие даже не переключается с ландшафтного на портретное расположение, когда оно там есть!

Я только наполовину понимаю saveInstanceStates иобмениваясь пакетами, и я определенно не уверен, как использовать это со сложными объектами данных, понимание там ценится

Что я хотел бы сделать, так это убедиться, что асинхронные задачи не запускаются снова (я могсохраняйте переменные на диск и проверяйте их перед запуском асинхронной задачи), если есть какой-то способ для Android, который действительно следит за этим, это было бы здорово!

спасибо

Ответы [ 3 ]

1 голос
/ 22 сентября 2011

Я считаю, что эта библиотека определенно послужит вашим целям

http://brainflush.wordpress.com/2009/11/16/introducing-droid-fu-for-android-betteractivity-betterservice-and-betterasynctask/

0 голосов
/ 22 сентября 2011

Я решил опубликовать, что работает для меня, это то, что у вас выглядит? Это из моего манифеста:

<activity android:name=".MediaSelectActivity" 
android:configChanges="orientation|keyboardHidden" 
android:label="Select Media Item for Vision"
 ></activity>
0 голосов
/ 22 сентября 2011

Когда вы помещаете android:configChanges="orientation" в манифест, вы заявляете, что андроиду не нужно будет обрабатывать изменение ориентации.Таким образом, ориентация никогда не происходит.

Вы можете проверить, как сохранить значение для связывания onConfigurationChange (в вашем случае, ориентации) в этой теме. Как сохранить состояние приложения Android?

Вкратце, вы сохраняете некоторое значение для связки, переопределяя onSaveInstanceState(Bundle savedInstanceState).Получите значение, которое вы сохранили в пакет, либо переопределив onRestoreInstanceState(Bundle savedInstanceState), либо проверив параметр пакета в onCreate.

...