2011-09-22 56 views
0

我有一个运行异步服务的活动,我不希望在布局更改时重置所有内容。Android在旋转时保存某些值

我把它放在活动的清单元素android:configChanges="orientation"中,但不幸的是,活动甚至不再从风景切换到肖像布局!

我只有一半理解saveInstanceStates和周围路过捆绑,以及我绝对不知道如何使用复杂的数据对象,洞察赞赏有

我想什么做的是确保该asynctasks唐再次运行(我可以将变量保存到磁盘,并在运行asynctask之前对它们进行有条件检查),如果有一些android方法真的需要注意这一点,那将非常棒!

感谢

+0

适合我!也许你还有其他东西阻止旋转,或者是因为你的asynctask正在运行而被延迟。 –

+0

对不起,有什么适合你的?你能详细说明一下 – CQM

+0

所以你只想运行一次asnystask一次..正确吗? –

回答

0

当你把android:configChanges="orientation"在清单中,你宣称Android将不会需要处理的方向变化。因此,方向从未发生过。

您可以查看如何在此线程中保存value以捆绑onConfigurationChange(在您的情况下为orientation)。 How do I save an Android application's state?

简而言之,您可以通过重写onSaveInstanceState(Bundle savedInstanceState)来节省一些值。通过覆盖onRestoreInstanceState(Bundle savedInstanceState)或在onCreate检查捆绑参数来检索保存的捆绑值。

+0

with'android:configChanges =“orientation”'set,如果我想要 – CQM

+0

@ PH7我不认为你是对的,我的应用程序将如何强制布局因景物和肖像渲染不同而改变确定重新定位。 –

+2

http://developer.android.com/guide/topics/resources/runtime-changes.html#HandlingTheChange 这可能比你做得更多。你需要重写onConfigurationChanged(Configuration newConfig)并且做你想做的事情。自己处理事情时要小心。 – PH7

0

我决定发布什么工作对我来说,这是你的什么样子?这是从我的清单:

<activity android:name=".MediaSelectActivity" 
android:configChanges="orientation|keyboardHidden" 
android:label="Select Media Item for Vision" 
></activity> 
+0

嗯,我已经定位过,但我确实希望布局从肖像更改为风景,反之亦然。当我在活动中使用该参数时,旋转设备时不再发生这种情况(我没有添加像onConfigurationChanged这样的额外类) – CQM

+0

您是否具有单独的陆地和端口布局?也许这会在这里有所作为。 –