Java onActivityResult更改当前片段
我目前正在编写的一个应用程序出现了一个看似奇怪的bug,到目前为止,这似乎只发生在三星S4上。这不会发生在S4 Mini、S5、S6和海信HS-U980上。这就是为什么我如此困惑 我使用的是滑动抽屉系统,每个菜单项都会更改活动容器中的当前片段 这是一个发生的示例,我转到片段B,单击按钮以使用startActivityForResult加载图像:Java onActivityResult更改当前片段,java,android,android-intent,fragment,Java,Android,Android Intent,Fragment,我目前正在编写的一个应用程序出现了一个看似奇怪的bug,到目前为止,这似乎只发生在三星S4上。这不会发生在S4 Mini、S5、S6和海信HS-U980上。这就是为什么我如此困惑 我使用的是滑动抽屉系统,每个菜单项都会更改活动容器中的当前片段 这是一个发生的示例,我转到片段B,单击按钮以使用startActivityForResult加载图像: i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_
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
在我提到的那些没有这样做的手机上,它返回到通话的片段
如果您需要更多信息/代码,请告诉我,我不确定为什么这种情况似乎只发生在一台设备上。尝试以下方法:
- 使用代码正常工作的设备,转到“设置/开发人员选项” 并激活“不保留活动”选项
- 然后试着做同样的事情,这个问题也会发生 装置
希望这能有所帮助。噢,哇,它现在确实可以在一台原本没有的设备上使用了。所以我猜S4上的活动正在被破坏?我认为这取决于系统内存。如果运行时内存太小,系统会销毁活动以释放一些存储空间。s4上的内存可能更小或更多,正在后台运行我有两个三星设备,它们都像你的一样快速破坏活动,也许三星软件是我不知道的原因。很高兴这个答案对你有帮助。