【发布时间】:2013-04-22 18:37:11
【问题描述】:
所以,这个问题已经在这个论坛上以多种形式提出,但没有一个答案对我有帮助。我有一个只能在三星 Galaxy S3 上重现的错误。
我想简单地使用手机的相机拍摄并存储一张照片,但在我收到 onActivityResult 的回复之前,我的 Activity 已被销毁。只有当我在纵向模式下使用相机时才会发生这种情况,在横向模式下就可以了。
我正在使用此代码启动相机:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, Config.ACTIVITY_TAKE_PHOTO);
在纵向模式下,我从未看到对 onActivityResult 的调用(来自相机活动),我只看到在启动活动中调用了 onDestroy()。日志中没有异常或错误,也没有明显的错误导致它崩溃。
我看到一些帖子建议将“android:configChanges="orientation|keyboardHidden"” 添加到清单中,并做很多其他事情来管理使用相机时发生的方向变化,但到目前为止没有任何帮助.
其他人解决了这个问题吗?
【问题讨论】:
-
developer.android.com/reference/android/hardware/…。您可以设置显示方向。我有一个 Galaxy s3,我使用了开发者网站上的代码。我无法复制您面临的问题。但是我遇到了一个不同的问题,显示方向是纵向,图像被捕获但保存的图像被旋转。
-
您应该阅读此讨论并意识到如果您看到 onDestroy(),Android 并没有杀死您的进程。别的东西做了。请阅读并吸收 Activity 生命周期文档,并意识到
android:configChanges="orientation|keyboardHidden是一个隐藏许多罪孽(错误)的黑客,除非你真正理解它。 groups.google.com/forum/?fromgroups=#!topic/android-platform/… -
Simon,您对如何获取有关我的活动的 onDestroy() 的更多信息有什么建议吗?有什么办法可以打印出更详细的堆栈跟踪吗?
-
Thread.currentThread().getStackTrace() -
所以听起来我应该停止担心防止屏幕方向改变和导致活动破坏,而更多地关注在每次图像捕获后从 onDestroy 中优雅地恢复?
标签: android android-activity camera galaxy