Android 接口回调个人见解

    对于初入此行的人,接口回调真的是一大难题,很难理解,但是如果你从目的方面来理解 就会比较容易理解。

    接口回调是要达到什么目的。原因一,一个类里面不能运用和使用其他类的一些东西,接口回调很容易实现这种吗,非常完美的实现一个类里面运用其他类的方法和变量,而且保持了代码的安全性。原因二,能把很复杂的代码放在其他类里面 减少了Activity里面的代码量

    现在,一个类A 要引用另一个类B的方法methrodB()方法,A类里面必须有B的引用或者B引用的想上转型的引用或者向下转型的引用 这个引用 一般可以通过New出来一个,

B b=new B(); 现在A能用B的方法了  但是吧 A使用了B的方法 得需要返回一些东西啊 这里就需要 接口了 A继承接口Ainter 然后实现其中的methodAinter()方法  在B中调用A的这个方法 就可以传值回去了 但是在B中一定要有A的引用才能调用这个方法啊 一般用Ainter这个回调的接口向下转型就能调用A中的这个类了。

    可能类的引用变了,但是 其中最终的一些东西不会变的。目的是A调用B的方法  流程就是A实现接口Ainter,它需要B的引用,调用B的方法, B需要A的引用调用A的固定的接口回调的方法。不管是怎么变 都是A实现接口Ainter A需要有B的引用,调用B的方法,在B中需要A的引用或者更为普通的需要接口的引用,调用接口中的方法。接口回调有很多种,但是种类区别就在于A的引用和B的引用的到的方式。

示例代码

package com.test.administrator.testtheworld;

/**
 * Created by Administrator on 2017/2/17.
 */
public interface MyCallBack {
        int  doSomeThing(String result);
}



package com.test.administrator.testtheworld;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

public class Main3Activity extends AppCompatActivity implements  MyCallBack{
private WorkClass workClass;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);
        workClass=new WorkClass(Main3Activity.this);
        workClass.doworkclass();
     Log.w("WorkClass","195");
    }

    @Override
    public int doSomeThing(String result) {
        Log.w("WorkClass","196");
        return 0;
    }
}


package com.test.administrator.testtheworld;


import android.util.Log;

/**
 * Created by Administrator on 2017/2/17.
 */
public class WorkClass {
    private Main3Activity main3Activity;
    public WorkClass(Main3Activity main3Activity) {
        this.main3Activity=main3Activity;
    }

    public  int  doworkclass(){
       Log.w("WorkClass","198");
      int a =  main3Activity.doSomeThing("197");

        return 199;
   }
}

运行结果

02-17 16:04:43.699 19312-19312/com.test.administrator.testtheworld W/WorkClass: 198
02-17 16:04:43.699 19312-19312/com.test.administrator.testtheworld W/WorkClass: 196
02-17 16:04:43.699 19312-19312/com.test.administrator.testtheworld W/WorkClass: 195

猜你喜欢

转载自blog.csdn.net/chenshuaiforwork/article/details/55511163