【发布时间】:2016-11-01 09:22:33
【问题描述】:
我的应用启动图库以选择照片。与此同时,我的应用程序被操作系统杀死,因此当我选择图像时,我的应用程序需要重新启动。
注意:这是一个暂时性问题。它通常工作得很好。
当它失败时,日志中没有任何内容表明发生了任何问题。
画廊以通常的方式通过Intent.ACTION_GET_CONTENT启动。
为什么我的应用程序被终止?我只能假设这是内存问题(由 Gallery 应用程序引起?),除了:
小图像也会出现这种情况。
当它成功运行时,我的应用程序在处理 图片。
我正在使用
android:largeHeap="true"。activityManager.getMemoryClass()= 256MB。连接调试器时,该问题更常发生。
一张照片,即使未压缩,也可能不超过 30MB。在启动图库时,我的系统有 199MB 可用空间。
即使应用程序重新启动,onActivityResult 方法仍然会被调用,所以我仍然可以继续上传,但这会导致过程非常缓慢,用户体验也很糟糕。
(在三星 Galaxy S3 上运行 Jellybean)
【问题讨论】:
-
my app needs to start up all over again。这有什么可怕的?你是在使用 onCreate() 的实例状态参数吗? -
我的应用程序每次启动时都需要通过 Internet 获取数据 - 因此,在图像上传期间重新启动会使一切比应有的速度慢 10 秒左右。在我看来,这是不可接受的用户体验。
-
当您旋转设备时?你怎么处理?我想你不会再全部下载吗?
Are you using the instance state parameter of onCreate()?你为什么不回答? -
旋转设备不会触发
onCreate()甚至onRestoreInstanceState()。是的,我正在使用实例状态参数,这就是我能够在重新启动后恢复上传的方式。我无法序列化整个应用程序状态,因为我正在运行一个正在发出网络请求的 web 视图。
标签: android android-intent android-gallery