Android - Native Gallery;当"不保持活动时获取图像"检查?

时间:2014-04-23 03:18:48

标签: android android-intent cordova gallery

因此有一点问题(与 - Camera Crashing due to Background Process Limit

有关

我有一些用户的手机有“不要保持活动”设置或“后台进程”设置为2或类似的东西,当打开其他意图时会导致应用程序看似“崩溃”

所以我遇到类似这样的问题

intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, uri);

画廊的EXTRA_OUTPUT被忽略 - 它适用于相机(在onResume之后我有我之后处理的临时图像的URI)

但是我如何为本土画廊做些什么呢?

我目前从相机拍摄照片的过程是

  1. 创建意图,使用EXTRA_OUTPUT
  2. 如果它没有崩溃,则调用onActivityResult
  3. 如果崩溃 - 从捆绑状态实例重新启动后,恢复所有内容然后正常处理图像
  4. 我想为Gallery复制同样的东西;但画廊会忽略EXTRA_OUTPUT。我一直在寻找一下。如果我不需要,我宁愿不必自己制作画廊(我想最糟糕的情况是我必须这样做;但我希望还有另一种方式)

1 个答案:

答案 0 :(得分:0)

好像我总是最终回答我自己的问题,这次是在主线程上使用onActivityResult的关键(现在答案看起来很明显)

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent)
{

    Log.e("Instance", "onActivityResult called.");
    super.onActivityResult(requestCode, resultCode, intent);

    //we use this to go through the channels IF the app has been restarted.
    if(this.activityResultCallback == null)
    {
        ...
    }
}

但是我遇到了这个问题

if(intent != null)
{
   Log.e("Instance", intent.getAction()); //this crashes?
}

我确定通过Intent intent = new Intent(Intent.ACTION_GET_CONTENT);

设置了getAction

但结果是带有图像(我检查了调试器,它给了我完整的内容路径) - 只是没有关联的动作?

编辑:这只是由于我缺乏Android知识,我没有意识到onActivityResult被调用并在PhoneGap中被链接,但现在这一切都有意义,但仍然存在getAction()为null的问题。我很高兴终于让一切正常,但我无法弄清楚getAction是否为空。因为我回复了内容://我只是假设它为我传回了一张照片