Android fragmentA 跳到activityB activityB finish回到fragmentA,在fragmentA中如何监测到这个事件
时间: 2024-09-12 11:01:56 浏览: 36
Android中关于FragmentA嵌套FragmentB的问题
在Android中,如果你的场景是从Fragment A跳转到Activity B,然后Activity B通过`finish()`返回到Fragment A,要在Fragment A中监测到这种事件,通常你会在Activity B执行`finish()`之前设置一个生命周期回调或者保存一些状态信息,以便在Fragment A恢复。
一种常见的做法是在Activity B中:
1. 设置一个 onSaveInstanceState() 或 onPause() 回调,这两个方法分别会在 Activity 结束前存储状态并暂停监听事件。在这个方法里,你可以将需要传递的信息(如一个标志或者Intent的数据)保存下来。
```java
@Override
protected void onPause() {
super.onPause();
Bundle bundle = new Bundle();
// 将状态信息添加到bundle,例如 boolean flag = true;
bundle.putBoolean("isFinishedFromB", flag);
// 存储或者广播这个bundle给Fragment A
// 如:FragmentManager.fragments.saveRestoreInstanceState(fragmentA, bundle);
}
```
2. 然后在Fragment A的onSaveInstanceState()或onCreateView()等合适的地方检查这个状态信息:
```java
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (savedInstanceState != null && savedInstanceState.getBoolean("isFinishedFromB")) {
// Fragment A接收到Activity B结束的消息,可以在这里做相应的处理
// 如更新界面显示、清除缓存等
}
return inflater.inflate(R.layout.fragment_a, container, false);
}
```
阅读全文