2012-10-10 4 views
2

현재 여러 가지 작업을 수행하기 위해 주 서버에 여러 번 연락해야하는 Android 플랫폼에서 응용 프로그램을 개발 중입니다. 나는 이제 별도의 스레드에서 서버에 대한 모든 요청을 작성하는 측면에서 소프트웨어 설계 문제에 대처하고 있습니다 (그렇지 않으면 NetworkOnMainThreadException이 발생하고 그렇게하지 않는 것이 좋습니다).안드로이드 응용 프로그램에서 서버에 요청하는 방법

  • 요청자, 말, 서버에있는 데이터베이스의 데이터와 회 전자를 채우기 위해 원하는 클래스 :

    그래서 나는 나의 예를 들어 3 개 종류가있다.

  • 중급 클래스은 새로운 연결을 수행하기 위해 DBConnection에 요청한 다음 완료 될 때까지 기다렸다가 데이터를 적절한 형식으로 구문 분석합니다.
  • 데이터베이스에 연결하고 원시 문자열을 검색하는 하위 클래스은 구문 분석 할 중간 클래스에 전달됩니다.

서버에 연결될 때마다 새 스레드를 만들어야하므로 연결 (하위 클래스)을 설정하고 결과를 기다리는 클래스에서 작성해야합니다. 이 방법을 사용하면 AsyncTasks를 사용하여 소프트웨어의 최상위 레이어에 과부하를주지 않아야합니다.

문제는 데이터를받은 후에 구문 분석해야하고 문제가 있다는 것입니다. 또한 회 전자를 채워야합니다 (예에서와 같이).

DataFromServerListener 인터페이스 또는 그와 비슷한 것을 만드는 것이 좋을지도 모르겠지만 서버의 데이터를 처리하기 위해 모든 메소드를 사용하면 복잡해 질 것이라고 생각합니다. 다른 한편으로는 모든 최상위 클래스가 AsyncTask를 사용하여 별도의 스레드를 시작해야하며 최상의 솔루션이 아닐 수도 있습니다.

정말이 주제에 대한 제안을 보내 주시면 감사하겠습니다. : D

답변

0
private class LongOperation extends AsyncTask<String, Void, String> { 

    @Override 
    protected String doInBackground(String... params) { 

     return "Executed"; 
    }  

    @Override 
    protected void onPostExecute(String result) {    
    } 
} 
+1

질문에 대한 답변은 무엇입니까? –

관련 문제