作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经有了这个基本设置,中断
已从外部注册为 GPIO 引脚的边沿触发回调:
public class Foo {
private static final Object notifier = new Object();
public static GpioCallback interrupt = pin -> {
synchronized (notifier) {
notifier.notifyAll();
}
return true;
};
public void waitForInterrupt() {
try {
synchronized (notifier) {
notifier.wait(5000);
}
Log.d("FOO", "Done.");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
即使发生中断,wait()
的超时时间也始终会耗尽。只有这样回调才会被执行。
有没有办法在回调发生时立即执行它,如果可以,如何执行?
最佳答案
您可能根本不想使用通知/等待,尤其是在主线程上。
Android 使用事件循环来执行诸如将结果发布到回调之类的操作。如果您在主线程上等待,您将阻塞事件循环,确保您的回调永远不会被调用(并且您的应用程序通常将无响应)。
关于java - Android Things GPIO 中断直到 wait() 超时后才会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49391286/
我正在使用 @ConditionalOnProperty 创建一个 FileCompressor bean: @Bean @ConditionalOnProperty(prefix = "file.r
我是一名优秀的程序员,十分优秀!