片段被杀死时是否有任何函数被调用?或者,一个活动可以监听片段删除等变化吗?
答案 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调用片段,你的活动就会获得回调