2013-08-08 4 views
0

저는 REST 프로토콜을 사용하는 클라이언트 서버 안드로이드 애플리케이션을 개발 중입니다.서버와의 안드로이드 비동기 상호 작용

기본적으로 그림을 서버에 업로드 한 다음 서버에서 처리 한 다음 안드로이드 응용 프로그램에서이 그림의 상태를 업데이트합니다 (처리 된 상태에서 새로 처리 한 상태로).

때문에 사용자는 ... 나는 그것을 좋아하지 않아 확실 해요

...

이 가능하다을 누르면 서버에서 처리 된 사진의 갱신 목록을 받기 위해 "새로 고침"필요 서버가 처리를 완료 한 후 일종의 콜백을 가질 수 있습니까? 나는 다소 ... 아약스를 찾고 있다고 생각합니다. 즉, 서버가 트리거해야합니다. 사용자가 "새로 고침"버튼을 누르지 않아도 목록을 업데이트하는 이벤트가 발생합니다. 처리가 완료되었거나하지 않은 경우 사진을 전송 한 후 ~ 2 초마다 서버에 물어 보지 않아도됩니다 ... 더 세련된 해결책이 있어야한다고 생각합니다.

이러한 기능을 구현하는 올바른 방법은 무엇입니까?

나는 서버와

사전에 감사하는 응용 프로그램의 안드로이드 부품을 모두 변경할 수 있습니다!

+0

왜 서버에서 클라이언트로 메시지를 보낼 수 없습니까? –

+0

예, 내 질문은 ... 어떻게해야합니까? – tania

+0

요청에 대한 응답을 보내는 방법을 보려면이 대답 (http://stackoverflow.com/questions/3696986/how-can-i-send-an-http-response-using-only-standard-network-libraries)을 사용하십시오. (당신이 모르는 경우). 그리고 나서 "PROCESSING", "DONE"등의 응답을 만들고 보내십시오. –

답변

0

이것은 Google Cloud Message을위한 것입니다, 서버는 장치 또는 장치에게 서버에서 얻을 새로운 물건이 있다는 것을 알립니다. 전화가 서버에 호출이 모든 새로운 정보를 얻고 그것을 또 다른 옵션은 XMPP를 사용

를 처리, 당신은 Javascript과 유사한 구문과 Ajax 요청을 수행하는 droidQuery을 사용할 수 있습니다 asmack

+0

또는 그녀는 HER 서버의 새로운 내용이 있음을 기기 나 기기에 알릴 수 있습니다. =) –

+0

GCM으로 할 수있는 ... – tyczj

+0

Isn ' 불필요한 합병증? –

0

살펴보고 있습니다 . 구성이 가능하므로 javadocs을 확인하십시오 (Javascript을 사용했다면 정말 빨리 잡을 것입니다). 호출은 백그라운드 스레드에서 실행되지만 콜백 메소드는 주 스레드에서 호출됩니다.

$.ajax(new AjaxOptions().url("http://www.example.com") 
         .type("post") 
         .dataType("json") 
         .data(bitmap_bytes) 
         .context(this) 
         .success(new Function() { 
          @Override 
          public void invoke($ droidQuery, Object... params) { 
           JSONObject json = (JSONObject) params[0]; 
           //handle json response. Also see $.map(JSONObject) for parsing 
          } 
         }) 
         .error(new Function() { 
          @Override 
          public void invoke($ droidQuery, Object... params) { 
           AjaxError e = (AjaxError) params[0]; 
           Log.e("$", "Error: " + e.status + ": " + e.error); 
          } 
         })); 

당신이 진행 스피너를 추가 할 경우, droidProgressdroidQuery 확장, 그리고 아주 쉽게 droidQuery와 통합 할 수 있습니다 : 여기 JSON 반응을 유도 할 수있는 post을 수행하는 방법의 예입니다 .

Bitmapbyte[]으로 변환하는 방법은 converting Java bitmap to byte array입니다.