当碎片被杀死时,可以通知活动吗?



当碎片被杀死时,是否有任何功能?或活动可以聆听此类更改,例如删除片段等?

这是一些碎片生命周期方法名称很自我描述您可以从那些波纹管

调用活动的方法
@Override
public void onDestroy() {
    super.onDestroy();
}
@Override
public void onDetach() {
    super.onDetach();
}
@Override
public void onStop() {
    super.onStop();
}
@Override
public void onPause() {
    super.onPause();
}

好的,这是一种将侦听器添加到您的活动中的方法。

1创建像这样的回调界面

public interface CallBack<T> {
    void onCall(int key, T body);
}

2使您的活动实施,例如

public class MyActivity extends Activity implements Callback 

这样做后,您需要在活动类中实现oncall方法 onCall是一种将从fragment

调用的方法

3在您的片段类中,成员变量

private Callback<TypeYouWant>  callback;

4为回调创建一个设置器

public void setCallBack(Callback c){
     this.callback = c;
}

5转到您的活动和setCallback,因为您的活动知道您的片段,因此您可以参考它。至少您可以使用getFragmentManager().findFragmentById()获得它。在Activity的Oncreate方法中添加此

 myFragment.setCallback(this) //note you can pass **this** because your activity implements `Callback` interface

6最后一步,在片段的ondetach添加

@Override

public void onDetach() {
   super.onDetach();
   if(callback !=null){
      callback.call(some key, some T type value);
    }
}

所以,每当ondetach在fragment中打电话时,您的活动都会得到回调

最新更新