Camera App Orientation刷新父活动?

时间:2012-10-29 12:22:18

标签: android android-intent orientation android-camera

我正在开发一个应用程序,捕获图像作为功能之一。在我的主屏幕上,我有两个旋转器。选择微调器值后,用户可以通过单击拍照按钮捕获图片。达到这个工作正常。但问题在于Camera App Orientation。

拍照按钮启动相机。当图像被捕获时,它保存(绝对正常)并返回到父活动。 但问题是刷新活动。回来的时候我可以看到以下有线的东西

1.)有时它显示横向屏幕(1秒)并返回到portait,刷新活动并导致重置Spinner值。

2.。)有时它会重置Spinner值。

真的很烦人。我没有任何线索来解决这个问题。我希望你们中的一些人能解决这个问题。

非常赞赏。

1 个答案:

答案 0 :(得分:2)

当您在另一个应用程序(相机)中启动活动时,为任何事情做好准备是件好事。活动可能会返回错误数据,屏幕方向可能会更改,或者可能需要很长时间才能返回到您的应用。根据您的描述,每次启动相机应用时,听起来好像方向都在变化。

Android具有内置的状态管理方法来处理这种类型的场景。您可以覆盖onSaveInstanceState()方法来存储活动的状态(例如,微调器值),然后在onCreate()中恢复该状态。 (示例here。)这将处理您启动Camera应用程序的情况,或者您的用户按下Home按钮然后返回应用程序等。

修改

仅当您的活动因内存压力而被杀死然后稍后重新创建时,才会调用

onRestoreInstanceState()。使用Bundle传递给onCreate()(在设备旋转后再次调用)会更加可靠。 Bundle将包含onSaveInstanceState()中存储的所有内容。

如果您需要将工作推迟到onResume(),那么您将需要使用onCreate()填充Activity类中的某些成员变量,然后使用这些变量onResume()