我知道这是一个很好的问题。我正在尝试实现一个回调机制。
我在Android中有一个java类,里面有一个接口
public interface MyInterface {
public void cb1(Integer id);
public void cb2(Integer id);
};
用户可以使用我的界面并实现,每当我需要通知用户时,我将调用cb1()或cb2()。
问题:
假设用户已经提供了接口mInterface的实现,
while (1) {
mInterface.cb1()
}
1)将调用哪个线程cb1()?同步通话还是异步通话?
2)如果异步调用,如果执行cb1()会阻塞一段时间怎么办?将所有cb1()调用逐个传递给用户吗?
答案 0 :(得分:4)
在上面的代码中,它将是一个同步调用。如果您希望它是异步的,您应该创建一个新的Thread
来执行回调。
答案 1 :(得分:-1)
奇怪的问题。如果代码没有在主线程上执行,则代码将相对于主线程异步。否则它将同步并在主线程上执行