callback是回调的意思,一般我们需要2个类需要相互调用,一个类把数据动态传递给另外一个类进行处理。
回调机制:
- 定义一个回调函数;
- 提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者;
- 当特定的事件或条件发生的时候,调用者使用函数指针调用回调函数对事件进行处理。
回调的步骤只需4步:
- 定义一个接口类,定义需要的方法。
- 声明一个接口类对象,提供一个设置类对象的方法。
- 创建接口类对象,重写其中的方法,把该类对象,通过对方的方法传递过去,对方就持有了该对象
- 对方通过该对象,调用该类对象重写的方法,把值传递过来,相当于set了一个值过来。
public class TestCallback {
private Callback mCallback;
public interface Callback {
void onDoFirst();
void onDoSecond();
}
public void setCallback(Callback callback) {
mCallback = callback;
}
public void doSomething() {
if (mCallback != null) {
mCallback.onDoFirst();
mCallback.onDoSecond();
}
}
}
public class MainActivity extends AppCompatActivity implements TestCallback.Callback{
private static final String TAG = "MainActivity";
private TestCallback mCallback;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mCallback = new TestCallback();
mCallback.setCallback(this);
}
//点击事件
public void onTouchCall(View v) {
mCallback.doSomething();
}
@Override
public void onDoFirst() {
Log.e(TAG,"onDoFirst ++++方法执行");
}
@Override
public void onDoSecond() {
Log.e(TAG,"onDoSecond ++++方法执行");
}
}