android方向 - 意图问题(相机)

agr*_*ude 5 crash camera android orientation android-intent

这是一个有趣的...

我有一个应用程序,我正在为运行android 2.3.3及更高版本的设备编写.

它有一个主要活动,通过Intent调用相机.

如果用户单击按钮启动摄像头; 然后拍照; 然后单击"完成"返回主活动 - 应用程序正常工作,并在主要活动的imageview中显示新图片.

但是,如果用户以纵向方向使用主要活动; 然后单击按钮打开相机意图并将方向更改为横向; 然后单击"完成"返回主活动 - 应用程序崩溃

但是......然而,如果用户以纵向方向使用主要活动; 然后单击按钮打开相机意图并将方向更改为横向; 然后在单击完成之前将方向更改回肖像(在相机中)以返回主活动 - 然后应用程序继续正常运行.

我试过的东西:我已经更改了清单文件以强制应用程序(主要活动)以纵向定向(我也已删除了)我已将此行添加到主活动中以尝试处理重新绘制它上面的活动从相机意图返回:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Run Code Online (Sandbox Code Playgroud)

在调试窗口中,我得到描述空指针异常的错误 - 我认为这是因为在传递图像的方向更改之后视图不再存在,除非方向与它离开时的方向相同.

我有点卡住所以会很感激一些建议.

Spi*_*ner 3

当您的屏幕方向发生变化时,您的屏幕方向Activity将被销毁并在新方向上重新创建。因此,在 的生命周期内获得引用的任何变量Activity将不再引用任何内容,如果您随后尝试访问它们引用的对象而不重新为其分配值,您将得到一个NullPointerException.

该方法onSaveInstanceState()用于在配置更改之间保存临时数据。onCreate()这会创建一个 Bundle,当Activity再次启动时会传递该 Bundle 。

没有任何代码,我不知道这是否是你的问题,但值得一看。

请参阅http://developer.android.com/reference/android/app/Activity.html#ConfigurationChanges了解更多信息(毫无疑问,比我提供的信息更准确)。