2014-02-12 2 views
1

MVC 패턴으로 응용 프로그램을 만들고 있습니다. 나는 거기에 속하지 않는 코드로 활동을 어지럽히 지 않는다. 그러나 나를 조금 넘어 뜨리는 것은 AsyncTask이다 ... 내가 보았던 것에서 이것이 UI에서 대부분의 시간이라고 불리는 것으로 보인다. 업데이트가 가능하기 때문입니다. 문제는 내 활동이 아닌 내 모델에서 AsyncTask를 사용하여 모든 네트워크 호출을 수행하고 있다는 것입니다. 하지만 네트워크 UI가 뭔가를 반환하는 등의 일이 생길 때 UI를 업데이트하고 싶습니다. 그래서 모델에서 Activity 또는 그 효과에 대한 콜백을 할 수있는 방법이 있습니다. 활동에 해당 코드를 넣지 않아도됩니까? 도움을 주시면 대단히 감사하겠습니다.모델에서 AsyncTask를 호출하여 활동을 업데이트하기 위해

답변

1

모델에 업데이트 "수신기"역할을하는 인터페이스가 필요합니다. 이렇게하면 활동이 활성 상태 일 때 청취자에게 등록되어 그에 따라 변경 사항에 대한 통지를 수신 할 수 있습니다.

많은 사례가 있습니다 (내장 청취자 클래스) - 여기에 하나입니다 모델에 등록되어있는 귀하의 활동에서 인터페이스를 만들기

http://www.tutorialspoint.com/java/java_interfaces.htm

가의 인터페이스를 알리기 위해 모델을 할 수 있습니다 제대로 업데이트하기 위해 데이터를 변경했습니다. 모델을 서비스로 구현하거나 서비스의 인스턴스를 유지 관리하는 경우 서비스에 바인딩 한 다음 모델 처리가 활동 수명을 초과한다고 가정 할 때 리스너를 등록 할 수 있습니다.

그렇지 않은 경우 AsyncTask는 모델 처리가 발생해야하는 곳이며 모델을 동기식으로 구현하고 리스너를 사용하여 모델을 모니터링 할 수 있습니다.

관련 문제