Android应用在图库意图期间重新启动

时间:2016-11-01 09:22:34

标签: android android-intent android-gallery

我的应用启动图库以选择照片。与此同时,我的应用程序被操作系统杀死,因此当我选择图像时,我的应用程序需要重新启动。

注意:这是一个短暂的问题。它通常可以正常工作。

当它失败时,日志中根本没有表示出现任何问题。

图库通过Intent.ACTION_GET_CONTENT以常规方式启动。

为什么我的应用程序被终止?我只能假设这是一个内存问题(由Gallery应用程序引起?),除了:

  • 也会出现小图片。

  • 当它成功运行时,我的应用处理没有问题 图片。

  • 我正在使用android:largeHeap="true"activityManager.getMemoryClass() = 256MB。

  • 连接调试器时,问题会更频繁发生。

  • 即使是未压缩的照片,也可能不超过30MB。在启动图库时,我的系统有199MB可用。

即使应用程序重新启动,仍会调用onActivityResult方法,因此我仍然可以恢复上传,但这会导致进程非常缓慢且用户体验非常糟糕。

(在三星Galaxy S3上运行Jellybean)

3 个答案:

答案 0 :(得分:0)

试试这个兄弟, Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT);// startActivityForResult(Intent.createChooser(intent, "Select Picture"),123);

答案 1 :(得分:0)

试试这个

Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                intent.setType("image/*");
                startActivityForResult(
                        Intent.createChooser(intent, "Select File"),
                        SELECT_FILE);

答案 2 :(得分:0)

这对我有用: -

 private static final int GALLERY_INTENT = 2;

Intent intent = new Intent(Intent.ACTION_PICK); intent.setType("image/*"); startActivityForResult(intent, GALLERY_INTENT);

在ActivityResult中

if (requestCode == GALLERY_INTENT && resultCode == RESULT_OK && data != null) { //do something }

并确保您已在清单文件

中添加这些内容

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />