프론트 엔드에서 Android로 작업 중이며 Spring의 REST 클라이언트 라이브러리를 사용하여 HTTP 요청을 REST 웹 서비스에 보냈습니다. 사람들이 AsyncTask
을 사용하여 RestTemplate
의 doInBackground
방법 (AsyncTask
)을 사용하는 예제를 온라인에서 읽었지 만 RestTemplate
이 활동 또는 단편에서도 사용되는 경우를 예로 들었습니다. 다른 방법보다 한 가지 방법을 사용하는 것이 중요합니까?Spring REST 서비스에서 Android로 응답 수신
두 번째로 RestTemplate의 exchange
또는 getForAllObject
을 통해 서버로부터 응답을 받으면받은 데이터를 기반으로 내 클라이언트가 다른 작업을 수행해야합니다. 예를 들어 사용자를 검색하려면 User
개체를 받아야하며 내 클라이언트는 사용자 조각/활동을 업데이트해야하지만 로그인하려면 다른 데이터를 받아야하고 클라이언트가 다른 후속 작업을 수행해야합니다.
HTTP 요청을 보내고 응답을받을 때마다 AsyncTask를 작성하면 클라이언트 측에서 수행해야하는 후속 작업을 어떻게 구별 할 수 있습니까? 열거 형을 사용하는 기본 방법은 무엇입니까? 예를 들어 서버에서 데이터를 가져 오려는 경우 AsyncTask를 인스턴스화하고 execute
매개 변수에 enum을 전달하여 전송할 HTTP 요청과 수신 된 데이터로 수행 할 작업을 지정하는 enum을 전달할 수 있습니다. 그렇다면 enum을 기반으로 다른 함수를 호출하는 switch 문을 사용할 수 있습니까?
이 중 어느 것도 의미가 없으면 서버에서 응답을 처리하는 데보다 일반적인 방법이 있습니까?
나는 아직도 어떻게 작동하는지 잘 모르겠습니다. GET 요청과 POST 요청을 보내는 함수가있는 경우이 두 함수가 백그라운드에서 AsyncTask를 확장하여 요청을 보내고 응답을받는 클래스를 인스턴스화하지는 않습니까? 그렇다면'onPostExecution'을 호출하는 동안 AsyncTask가 초기 HTTP 요청이 POST인지 GET 요청인지를 모르는 상태에서 어디에서부터 AsyncTask가 어디로 가는지 어떻게 알 수 있습니까? 내가 보내고 자하는 모든 종류의 HTTP 요청에 대해 AsyncTask를 확장해야할까요? (하나는 로그인 용, 하나는 x 데이터 가져 오기, 다른 하나는 y 데이터 가져 오기) – Biiiiiird
두 개의 분리 된 비동기 태스크 릿이 있어야합니다. 예제 UserSearchAsyncTask 및 UserLoginAsyncTask. 두 클래스 모두 AsyncTask를 확장합니다. 그런 다음 각 반은 필요한 곳에 있습니다. 일반적으로이 두 시나리오를 처리하기 위해 별도의 활동 또는 조각이 있습니다. –