【问题标题】:Android - Native Gallery; get image when "Do Not Keep Activities" is checked?Android - 原生图库;选中“不保留活动”时获取图像?
【发布时间】:2014-04-24 09:41:17
【问题描述】:

所以有点问题(这与 - 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);

Gallery 的 EXTRA_OUTPUT 被忽略 - 它适用于相机(在 onResume 之后,我获得了之后处理的临时图像的 URI)

但是我要为原生画廊做什么?

我目前从相机拍照时的流程是

  1. 创建意图,使用 EXTRA_OUTPUT
  2. 如果没有崩溃,则调用 onActivityResult
  3. 如果确实崩溃 - 从捆绑状态实例重新启动后,恢复所有内容,然后正常处理映像

我想为画廊复制同样的东西;但 EXTRA_OUTPUT 在图库中被忽略。我已经四处张望了一段时间。如果不需要的话,我宁愿不用自己做画廊(我想最坏的情况下我必须这样做;但我希望有另一种方式)

【问题讨论】:

    标签: android android-intent cordova gallery


    【解决方案1】:

    看来我总是以自己的方式回答,这次是在主线程上使用 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?
    }
    

    我确定 getAction 是通过 Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 设置的

    但是结果返回了一个图像(我检查了调试器,它给了我完整的内容路径) - 只是没有相关的操作?

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-29
      相关资源
      最近更新 更多