【发布时间】:2010-08-10 22:19:04
【问题描述】:
我有一个 Android 应用程序,允许用户选择一张已拍摄的照片。一旦用户选择了一张照片,我就获取该照片的 URI 信息,使用该信息创建一个位图,然后在 ImageView 中设置该位图。这一切都很好。
然后我让用户选择要查看的图片。当用户选择查看图片时,我启动一个 ACTION_VIEW 意图,传递 URI 数据。
Intent intent = new Intent(Intent.ACTION_VIEW, pictureUri);
startActivity(intent);
如您所见,这是非常简单的代码,没有什么特别之处。问题是,当我在运行 Android 2.1 的 Droid 上运行此代码时,大约 10 次中有 6 或 7 次,应用程序将显示正确的图片。但另外 3 或 4 次,我得到了错误的图片。此外,每次显示错误的图片时,总是显示相同的错误图片。大多数时候我看到正确的图片这一事实让我相信我在代码中所做的一切都很好,所以谁能告诉我你以前是否见过这个问题,更好的是,有解决方案吗?
这是我在运行此程序时在 Droid 上观察到的确切顺序(注意:图像 URI 在我启动 Activity 之前已保存):
- I choose "View Photo" in the Activity
- When things work, I get taken to the gallery and shown image 74
- Each time things do not work, I get shown image 82
请记住,当我使用已保存的 URI(从数据库中检索)启动 Activity 时,我会根据 onCreate() 中的 URI 数据设置 ImageView,并且 ImageView 中显示的图像始终是正确的图像.直到我真正决定使用 ACTION_VIEW 查看图像时,我才看到奇怪的行为。而且我知道这两张照片并不具体。我过去使用其他照片观察到这种行为,并得到了相同的行为。
【问题讨论】: