在学习Java和Android的过程中,相信大家经常会碰到回调这个概念,以前一直不理解到底什么是回调机制,也看了很多别人写的博客,但是始终无法完全理解,总是似懂非懂,看完就忘,今天又看了一些回调方面的资料,这里将自己的理解加以记录,希望对你有所帮助!
大家在进行android编程时,肯定会经常遇到下面这段代码,代码的意思很简单,就是给button添加一个点击事件,这里就用到了回调机制。
在MainActivity中,我们实现了一个接口,接口名为OnClickListener,并且实现了接口函数onClick,在MainActivity中存在一个Button类的对象button,我们在MainActivity中通过对象button调用Button类中的方法setOnClickListener,并且将MainActivity中的接口传递给Button类中的setOnClickListener方法,在Button类中setOnClickListener方法中将传递过来的OnClickListener对象进行保存,并且在适当的时机调用其中的onClick方法。
所以可以对Android中的回调机制加以概括如下:
(1) class A实现某个接口interface
(2) class A含有class B的对象的引用
(3) 在class A中通过class B对象的引用调用class B中的方法,该方法的一个参数是接口对象
(4) 在class B的方法中通过传递过来的接口调用接口的方法
博客写的不多,也不知道自己是否理解正确,欢迎大家一起交流,谢谢!
public class MainActivity extends Activity {
private final String TAG = "MainActivity";
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, "HelloWorld");
}
});
}
}