java - Android 的接口(interface)方法是在哪个线程中调用的?同步还是异步?

标签 java android multithreading

我知道这是一个非常重要的问题。我正在尝试实现回调机制。

我在 Android 中有一个 java 类,里面有一个接口(interface)

public interface MyInterface {

        public void cb1(Integer id);
        public void cb2(Integer id);
    };

用户可以使用我的接口(interface)和实现,每当我需要通知用户时,我都会调用cb1()或cb2()。

问题:

假设用户为我提供了接口(interface) mInterface 的实现,

 while (1) {
     mInterface.cb1()
 }

1) cb1() 将在哪个线程中被调用?同步调用还是异步调用?

2) 如果是异步调用,如果 cb1() 的实现阻塞一段时间怎么办?所有的cb1()调用都会一一传递给用户吗?

最佳答案

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

关于java - Android 的接口(interface)方法是在哪个线程中调用的?同步还是异步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34454420/

相关文章:

java - 使用 findAll() Spring JPA PostgreSQL 时出现无限循环

java - 将具有数百万条记录的表从一个数据库复制到另一个数据库 - Spring Boot + Spring JDBC

android - 在android中监听键盘显示或隐藏事件

c++ - 用户空间中的内存障碍? (Linux,x86-64)

java - 当SelectableChannel注册方法时会得到CancelledKeyException

java - 将数组中的 BeanItemContainer 绑定(bind)到表

php - 如何从android发送长数组到php服务器

Android 从手机读取错误日志

java - AspectJ 执行是线程安全的吗?

multithreading - Delphi队列和同步