onActivityResult 改变我当前的片段
onActivityResult changing my current Fragment
我目前在编写的应用程序中遇到了一个看似奇怪的错误,到目前为止,这似乎只发生在三星 S4 上。它不会发生在 S4 Mini、S5、S6 和 Hisense HS-U980 上。这就是为什么我很困惑。
我使用的是滑动抽屉系统,每个菜单项都会更改活动容器中的当前片段。
这是一个示例,我转到片段 B,单击按钮以使用 startActivityForResult 加载图像:
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();
}
}
}
}
然后我没有返回 Fragment B,而是返回到主要 Fragment,Fragment A。它还通过 Fragment C 中的另一个 startActivityForResult 调用来执行此操作,它也 returns 到 Fragment A。
在我提到的没有这样做的电话上,它返回到拨打电话的片段。
如果您需要更多,请告诉我information/code,我不确定为什么这似乎只发生在一台设备上。
试试这个:
使用您的代码可以运行的设备,转到“设置”/“开发人员选项”
并激活选项不保留活动。
然后照着做试试,这个问题应该也会出现
设备.
我认为您有在重新创建 activity 时再次执行的某些方法中添加片段 A 的代码。
希望这对您有所帮助。
我目前在编写的应用程序中遇到了一个看似奇怪的错误,到目前为止,这似乎只发生在三星 S4 上。它不会发生在 S4 Mini、S5、S6 和 Hisense HS-U980 上。这就是为什么我很困惑。
我使用的是滑动抽屉系统,每个菜单项都会更改活动容器中的当前片段。
这是一个示例,我转到片段 B,单击按钮以使用 startActivityForResult 加载图像:
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();
}
}
}
}
然后我没有返回 Fragment B,而是返回到主要 Fragment,Fragment A。它还通过 Fragment C 中的另一个 startActivityForResult 调用来执行此操作,它也 returns 到 Fragment A。
在我提到的没有这样做的电话上,它返回到拨打电话的片段。
如果您需要更多,请告诉我information/code,我不确定为什么这似乎只发生在一台设备上。
试试这个:
使用您的代码可以运行的设备,转到“设置”/“开发人员选项” 并激活选项不保留活动。
然后照着做试试,这个问题应该也会出现 设备.
我认为您有在重新创建 activity 时再次执行的某些方法中添加片段 A 的代码。
希望这对您有所帮助。