다른 비동기 작업 후에 하나의 비동기 작업을 실행하려고합니다. 여기서, 비동기 태스크 2가 실행되거나 비동기 태스크의 값에 의존하는 경우. (X의 == 2) A1 전에 실행 될 경우 조건이 완료되기 때문에 여기에 내가 내 이해에 따르면하나의 비동기 작업을 하나씩 실행하는 방법?
int x=0;
x=new A1().executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
(Here x is just for the sake of explanation and making it simple, take it as a pseudo code rather than actual code)
if (x==2)
new A2().executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
을 달성하고자하는 것입니다, 여기에서 x의 값은 0 이외의 다른 수 없을 것입니다. A1 작업이 완료되면 if (x == 2) 조건이 실행되기를 원합니다.
이제 A1의 onPostExecute 내부에서 A2를 실행하면 트릭이 수행되지만 상황에 따라 A2를 독립적으로 실행해야한다는 것을 알고 있습니다.
그래서 단지를 입력 후 실행 당신이 그것을 원하는 경우에 A2로? – chrylis
@chrylis 그것은 단지 하나의 예였습니다. # 서로 연결된 3-4 개의 비동기 작업이 있습니다. # 입력 값이 변경 될 수 있습니다. 이러한 비동기 작업의 입력은 서로 다를 수도 있고 그렇지 않을 수도 있습니다. 실용적이지 않습니다. 나는 그것을 현재 사용하고있다. 그리고 그것을 계속 사용하기 위해서는 아주 사소한 변화로 붙여 넣기해야합니다. Post Execute에 넣지 않고 어떻게 할 수 있는지 알고 있습니까? –
정말로 4 개의 AsyncTasks를 실행해야합니까, 아니면 순차적으로 4 개의 작업을 수행해야합니까? 여기에'onPostExecute'에있는 것들을 함께 묶는 것보다 훨씬 더 깨끗한 접근법이 있습니다. –