Android在哪个线程中调用接口方法?同步还是异步?

时间:2015-12-24 14:43:15

标签: java android multithreading

我知道这是一个很好的问题。我正在尝试实现一个回调机制。

我在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()调用逐个传递给用户吗?

2 个答案:

答案 0 :(得分:4)

在上面的代码中,它将是一个同步调用。如果您希望它是异步的,您应该创建一个新的Thread来执行回调。

答案 1 :(得分:-1)

奇怪的问题。如果代码没有在主线程上执行,则代码将相对于主线程异步。否则它将同步并在主线程上执行