많은 곳에서 문제없이 AsyncTask를 사용하고 있습니다.AsyncTask를 "절차 적"으로 만드는 패턴
허니컴에서는 모든 네트워크 I/O가 동기식 네트워크 연결이 적합하기 전에 많은 경우에 AsyncTasks가 필요한 UI 스레드와 별도로 스레드에 있어야합니다 (Honeycomb이 예외를 throw합니다). 주/ui 스레드의 모든 네트워크 입출력).
이제 기본적으로 Object result = MyAsyncTask().execute()
과 같은 것을 얻고 싶습니다. 좋은 패턴이 있습니까?
AsyncTask Android - Design Pattern and Return Values 나는 GWT가 어떤 일을하는지 이해하지만 어쨌든 이것은 꼬리에 개가 흔들리는 것처럼 들립니다. (그리고 나서 뇌가 좀 더 비틀어 져야합니다.)
고마워요. 제가 정확히 찾고 있던 것이 었습니다. 어떻게 그 일을 처음으로 놓칠 수 있었 을까? 일부 파트의 경우 GWT 패턴이 매우 훌륭하지만,이 비동기 taks가 완료 될 때까지 get ...은 많은 의미가 있습니다. –
UI 스레드에서 execute(). get()을 호출하는 것은 사실상 UI 스레드에서 작업을 실행하는 것과 거의 동일합니다. 이렇게하면 주 스레드에서 네트워크 호출에 대한 예외를 발생시키지 않지만 작업의 영향을 피할 수는 없습니다. 네트워크 작업이 완료 될 때까지 UI 스레드가 차단됩니다. PostExecute 메서드를 사용하면 주 스레드가 사용 가능할 때까지 기다릴 수 있으므로 교착 상태가 발생할 수 있습니다. IMHO 당신은 AsyncTasks에 대한 안티 패턴을 제시하고 있습니다. –