java - 三星 Galaxy Tab 7.0 在从相机 Intent 返回时重启应用程序

标签 java android galaxy-tab

我的代码在更小和更大的设备(摩托罗拉 Xoom、三星 Galaxy Player 4.0、京瓷 Digno)上都能正常工作,但对于三星 Galaxy Tab 7.0,在启动 ACTION_IMAGE_CAPTURE Intent 并拍照后,当应用程序返回时调用 onDestroy(),然后调用 onCreate()then onActivityResult() 是调用,最后再次调用 onDestroy()onCreate(),这当然是不可取的——只应调用 onActivityResult() .

可能的线索:

  • Galaxy Tab 7.0 的屏幕尺寸在 list 文件中明确不受支持(这是我测试过的唯一屏幕尺寸不受支持的设备),因此用户可以选择 scretch-to-fit 或 zoom-适合。两个 UI 具有相同的(不良)行为。
  • 在预览图片时,相机 Activity 似乎会切换方向。我的应用仅支持纵向模式(编辑:在较小的屏幕上 - 在非超大屏幕上,它支持方向更改)。也许方向改变以某种方式破坏了我的 Activity 。
  • 我已经尝试从不同的 Intent (电子邮件 Intent )启动和返回,在这种情况下我的应用程序没有被破坏和重新创建。

如果需要更多信息或代码示例,请告诉我。

编辑:问题已缩小到方向改变。根据 Karthik 的回答,设置 android:configChanges="orientation" 解决了这个问题。唯一的问题是,我的应用程序支持超大屏幕上的方向更改。此设置会破坏这些设备上的此功能。我尝试使用 android:configChanges="@string/config_changes" 并根据屏幕尺寸提供不同的字符串,但现在我收到“安装错误:INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION”。据此,Android Activity, how to override manifest's android:configChanges with Java code? ,无法以编程方式设置它。我唯一的选择是手动处理应用程序中的所有方向更改吗?

最佳答案

你是对的,这是由于方向改变。相机在 Galaxy Tab 中以横向模式工作。
所以你可以添加 android:configChanges="orientation"给你的<activity> list 文件中的标记。

这将解决您的问题。 onDestroy()onCreate()从相机返回时不会被调用。

关于java - 三星 Galaxy Tab 7.0 在从相机 Intent 返回时重启应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8599051/

相关文章:

android - 调用 Sinch REST API 时出现 400 错误

android - 无法在 Android ICS 上进行蓝牙连接

java - Android:奇怪的银河标签行为

android - 是否可以在我自己的应用程序中使用私有(private)三星框架?

java - 修剪井字棋 Action

android - 在 headless (headless) linux 机器上运行 android 模拟器

java - Linux 上具有零端口的 CommPortIdentifier.getPortIdentifiers

android - 样式属性在 webview 中不起作用

java - 如何进行 Rest API 调用以在 Java 中启动可执行文件

java - 有没有办法在 Spring XML 中指定默认属性值?