我有JNI库的执行方法(例如 JNI.calculate(listener))。它应该需要例如30秒。我想但是再次执行这个方法计算(监听器),但首先我需要停止上次执行。此方法有一个参数 - listener,它有两个方法:
public void canContinue(){
return canContinue;
}
public void result(int number){
//some code
}
方法 canContinue 每隔3秒调用异步,例如。我只是不想等待,直到下一个 canContinue 将被调用。我想立即执行此方法的下一次执行 calculate(listener)。
你有什么建议吗?可能我应该使用 Handler,HandlerThread,Thread,AsyncTask 或som这类,但如何解决这个问题?
答案 0 :(得分:0)
我没有正确理解这个问题,但我认为保持延迟会做到这一点,保持延迟写这个
try {
Thread.sleep(1000); // time in milliseconds
} catch (InterruptedException e) {
e.printStackTrace();
}
答案 1 :(得分:0)
如果您从主题中调用您的函数 JNI.calculate(listener) ,该怎么办?您可以 启动 调用此函数的线程,当您想要其他立即执行时, 中断 线程和 启动 另一个(永远不会重新启动已终止的线程!)。小心操纵数据:你应该使用互斥来阻止它。
也可以看到它(关于线程中断并给出一些精确性):