android 方向 - Intent 问题(相机)

标签 android android-intent crash camera orientation

这是一个有趣的...

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

它有一个主要 Activity ,通过 Intent 调用相机。

如果用户点击按钮启动相机;然后拍照;然后单击“完成”返回主 Activity - 应用程序工作正常并在主 Activity 的 ImageView 中显示新图片。

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

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

我尝试过的东西: 我已经更改了 list 文件以强制应用程序(主要 Activity )以纵向方式定向(我也删除了它) 我已将此行添加到主要 Activity 中,以尝试处理从相机 Intent 返回的 Activity 的重新绘制:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

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

我有点卡住了,希望得到一些建议。

最佳答案

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

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

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

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

关于android 方向 - Intent 问题(相机),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11136209/

相关文章:

android - 无法使用2种以上的布局

android - 你如何在 android 中的 Activity 之间传递 float[] 数组?

java - 如何更改图像并在 5 秒后重新运行线程中的主要 Activity 后不返回到 android 中的基本布局

android - 使用 Intent 将字符串返回到先前的 Activity

ios - 使用 NSCache 作为 pickerview 的数据源可能会崩溃

c - 为什么像这样使用指针会导致构建崩溃?

Android 惰性数据绑定(bind)可能吗?

c# - Xamarin Android 支持库 v4(不完整)?

php - 通过 Auth Controller 保护 Assets /媒体文件夹?拉维尔 5.2

android - 滚动时 ListView 顶部突出显示