0
내 안드로이드 프로젝트에서 저는 Modbus 통신을 위해 jamod 라이브러리를 사용하고 있습니다. 네트워크 연결을 사용할 수없는 경우를 제외하고는 비동기 작업이 초 단위로 transaction.execute
에 걸립니다. 주어진 시간 초과 후 취소하고 싶습니다. 비동기 작업을 취소하기 위해이 핸들러를 구현하려고 시도했습니다.라이브러리의 동기화 된 메소드를 취소하는 방법은 무엇입니까?
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (task.getStatus() == AsyncTask.Status.RUNNING
|| task.getStatus() == AsyncTask.Status.PENDING) {
task.cancel(true);
}
}
}, WRITE_TASK_TIMOUT);
그러나이 방법은 작동하지 않습니다. 도서관을 들여다 보니 ModbusTCPTransaction.execute()
메서드가 synchronized()
이라는 것을 보았습니다.
이렇게하면 x 초 후에이 방법을 취소 할 수 없습니까?
코드에 대한 추가 정보를 게시하십시오. 문제를 감지하기에 충분하지 않습니다. –