有一些关于类似问题的帖子,但我只是没有得到正确的答案,我希望任何人都可以帮助我。
情况:
我有一个MainActivity
包含几个片段。在一个片段中,我CameraActivity
有一个意图。当用户拍完照片后,我们CameraActivity
会关闭finish()
并返回到之前的 Fragment。
目标:
我给图片一个特定的名称,并希望将这个名称从图片传递CameraActivity
给片段。
问题:
即使我调用finish()
CameraActivity并且屏幕返回到之前的Fragment,该方法onSaveInstanceState(Bundle outstate)
也不会被调用。这是为什么?
或者我怎么能解决这个问题?
这是我的代码:
public class CameraActivity extends Activity {
// more code here
String imageFileName;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// some methods here
finish(); // finish the current Activity and get back to previous Fragment
}
// more code here
@Override
protected void onSaveInstanceState(Bundle outState) {
Log.d(TAG_LOG, "onSaveInstanceState() called"); // is never called!
outState.putString("imageFileName", imageFileName);
super.onSaveInstanceState(outState);
}
}
在片段中我这样做:
public class MapFragment extends Fragment implements View.OnClickListener {
// more code here
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_map, container, false);
// some methods here
if (savedInstanceState != null) {
String imageFileName = getArguments().getString("imageFileName");
Log.d(TAG_LOG, "image filename: " + imageFileName);
}
return view;
}
// more code here
}
非常感谢任何帮助!