需求是这样的
class A里面有个线程函数functionC();
class B里面调用A的functionC();并期望在线程结束后返回处理结果
实现过程
第一步:创建一个接口
public interface GetCallBack {
public void onCountCallBack(int num);//回调的函数,里面的是你想要带回的参数
}
第二步:在你的线程结束后调用这个接口
public class B {
public void Count(final int a, final GetCallBack getCallBack){
new Thread(new Runnable() {
@Override
public void run() {
//以下是个小例子,放你自己的处理逻辑
int c_num=0;
try {
for(int i=1;i<=a;i++){
c_num=c_num+i;
}
}catch (Exception ex){
}finally {
//线程结束调用回调函数,带回你想要的东西
if (getCallBack != null) {
getCallBack.onCountCallBack(c_num);
}
}
}
}).start();
}
}
第三步,调用线程函数的函数,带参带上回调函数
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
B b = new B();
//带参带上回调函数
b.Count(100, new GetCallBack() {
@Override
public void onCountCallBack(int num) {
//回调的结果可会获取
System.out.println("lalala回来的数字"+num);
}
});
}
}
结果
一个小demo代码都在了,复制下来可以直接用的