onActivityResult改变我当前的片段

时间:2015-04-24 14:45:21

标签: java android android-intent fragment

我目前正在编写一个看似奇怪的错误,我正在写一个应用程序,到目前为止,这似乎只发生在三星S4上。它不会发生在S4 Mini,S5,S6和海信HS-U980上。这就是为什么我这么困惑。

我使用的是Sliding Drawer系统,每个菜单项都会更改Activities容器中的当前片段。

这是发生了什么的一个例子,我转到Fragment B,我点击一个按钮,使用startActivityForResult加载一个Image:

i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(i, 1);
break;
然后调用

onActivityResult:

public void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (resultCode == Activity.RESULT_OK) {

        if (requestCode == 1) {

            if(data.getData() != null) {

                image = ImageTools.copyImage(getActivity(), data.getData());

                int orientation = ImageTools.getOrientationEXIF(getActivity(), image);

                setImage(orientation);

                saveData();

                refreshView();
            }
        }
    }
}

然后我不再返回片段B,而是返回主片段片段A片段。它也会在片段C中使用另一个startActivityForResult调用来执行此操作,它也会返回到片段A。

在我提到的不执行此操作的电话上,它返回到调用的片段。

如果您需要更多信息/代码,请告诉我,我不知道为什么这似乎只发生在一台设备上。

1 个答案:

答案 0 :(得分:1)

试试这个:

  • 使用您的代码可以使用的设备转到“设置/开发者”选项 并激活选项“不要保持活动”。

  • 然后尝试做同样的事情也应该在这里发生 设备

我认为你有一些代码可以在重新创建活动时再次执行的某种方法中添加Fragment A.

希望这有帮助。