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()以何种顺序调用。
答案 0 :(得分:3)
我想知道这行super.onActivityResult()
在您的情况下,它会调用onActivityResult
的{{1}}。有Android会检查是否有FragmentActivity
应该调用它的onActivityResult。
当活动有时,onActivityResult()以什么顺序调用 多个片段
首先托管Fragment
,最后托管Activity
Fragment
。
要深入了解该主题,请查看startActivityForResult