繁体   English   中英

onActivityResult的参数“ Intent data”为空

[英]The argument “Intent data” from onActivityResult is null

我有一个活动A和一个片段B。

在AI中有这种方法:

private void installApp(String path){
    Intent i = new Intent(Intent.ACTION_VIEW);
    fileUri = Uri.fromFile(new File(path));
    i.setDataAndType(fileUri, "application/vnd.android.package-archive");
    i.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    B.startActivityForResult(i, 101); //B has been initialized elsewhere
}

后来在B中将此覆盖称为:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
    try{
        super.onActivityResult(requestCode, resultCode, data);
        //Can't d stuff with data because it's Null.
    }
    }catch (Exception e){
    //Handles the exception
    }
}

我已经搜索了一段时间,但仍然无法弄清楚为什么数据为空。 我错过了什么?!

谢谢。

在片段B中,您是否要调用startActivityForResult(new Intent(getActivity(), ActivityA.class), REQUEST_CODE) (REQUEST_CODE为整数)

如果是这样,那么:

在活动A中,您不会为结果启动活动。 您需要调用: finish();

在活动A中而不是在startActivityForResult();

更新您的代码,使其看起来像:

private void installApp(String path){
    Intent i = new Intent(Intent.ACTION_VIEW);
    fileUri = Uri.fromFile(new File(path));
    i.setDataAndType(fileUri, "application/vnd.android.package-archive");
    i.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    setResult(RESULT_OK, i);
    finish();

}

ACTION_VIEW的文档具有“输出:无”,这意味着ACTION_VIEW实现不提供结果,因此将ACTION_VIEWstartActivityForResult()是没有意义的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM