簡體   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