片段被杀死时是否可以通知活动?

时间:2015-05-15 10:08:23

标签: android android-fragments android-activity

片段被杀死时是否有任何函数被调用?或者,一个活动可以监听片段删除等变化吗?

1 个答案:

答案 0 :(得分:1)

这里有一些片段生命周期方法名称非常自我描述 你可以从下面的那些电话中调用你的活动方法

@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是一种将从片段

调用的方法 片段类中的

3广告成员变量

private Callback<TypeYouWant>  callback;

4为回调创建一个setter

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 add

@覆盖

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

所以只要onDetach调用片段,你的活动就会获得回调

相关问题