2016-11-01 169 views
1

我的应用程序启动画廊选择一张照片。与此同时,我的应用程序被操作系统杀死,所以当我选择图像时,我的应用程序需要重新启动。Android应用程序在画廊意图期间重新启动

注意:这是一个暂时的问题。它通常工作得很好。

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

该画廊以通常的方式通过Intent.ACTION_GET_CONTENT推出。

为什么我的应用程序被终止?我只能假设它是内存问题,只是(由图库应用?):

  • 它发生的小图片,太。

  • 当它成功运行我的应用程序没有问题处理 图像。我正在使用android:largeHeap="true"activityManager.getMemoryClass() = 256MB。

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

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

即使该应用程序重新启动时,onActivityResult方法仍称,所以我仍然可以继续上传,但它是个非常缓慢的过程,一个可怕的用户体验。

(在三星Galaxy S3运行杰利贝恩)

+0

'我的应用程序需要启动各地again'。什么是如此awapull在那?你在使用onCreate()的实例状态参数吗? – greenapps

+0

每次应用程序启动时,我的应用程序都需要通过互联网获取数据 - 因此,在图像上传过程中重新启动会使所有应用程序的速度比应该慢10秒。在我看来,这是不可接受的用户体验。 – IanS

+0

当你旋转你的设备?你如何处理?你会不会再次下载我想? '你在使用onCreate()的实例状态参数吗?'为什么你不回答? – greenapps

回答

0

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

+0

这和我已经有什么不同?我尝试过选择器,但仍然看到同样的问题。 – IanS

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); 
+0

我试过了ACTION_PICK - 仍然看到同样的问题。 – IanS

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" />

+0

我已经完成了所有这些。我的代码没有任何缺失,因为它通常工作得很好。 – IanS

相关问题