super.onActivityResult(requestCode,resultCode,data);

时间:2016-11-04 07:55:32

标签: android

Hy我正在开发一个Android应用程序,其中包含一个包含多个片段的主机活动。我在我的宿主Activity和我的片段中使用了onActivityResult()方法。

在主持人活动中

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode)
    {
    }
}

片段

public void onActivityResult(int requestCode, int resultCode, Intent data) {
     super.onActivityResult(requestCode, resultCode, data);        
     switch (requestCode)
    {
    }
}

当我从片段中启动activityForResult时,片段的onActivityResult没有被调用。 我是这样做的

startActivityForResult(Intent.createChooser(intent, "Select File"),REQUEST_CODE);

当我将此行添加到我的主机活动的结果方法时,我解决了我的问题 super.onActivityResult(requestCode,resultCode,data);

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode)
    {
    }
}

现在我片段的onActivityResult()正在接听电话。 我想知道当我在Activities onResult方法中添加它时,这行super.onActivityResult()实际上做了什么?当活动有多个片段时,onActivityResult()以何种顺序调用。

1 个答案:

答案 0 :(得分:3)

  

我想知道这行super.onActivityResult()

在您的情况下,它会调用onActivityResult的{​​{1}}。有Android会检查是否有FragmentActivity应该调用它的onActivityResult。

  

当活动有时,onActivityResult()以什么顺序调用   多个片段

首先托管Fragment,最后托管Activity Fragment

要深入了解该主题,请查看startActivityForResult