2011-12-18 3 views
0

2 액티비티가 포함 된 애플리케이션을 작성했습니다. 첫 번째 경우 - 갤러리에서 이미지를 선택하는 옵션을 사용자에게 제공해야하며이 이미지를 일부 서버로 보냅니다. 서버가 결과를 반환합니다. 결과가 정상이면 두 번째 활동을 표시해야합니다.'기다려주십시오'를 표시하고 GUI가 멈추는 것을 피하는 방법?

내가 가지고있는 문제 ..

  1. 이미지를 전송

    - 내가 '기다려주십시오'이를 방지와의 멋진 GUI를 보여주고 싶어 내가 ... 화면이 검은 색이 될 것을 참조 - 내가 어떻게 해 ?

  2. 나는이 이미지를 다른 스레드의 서버로 보내고 싶습니다. 어떻게 안드로이드에서 할 수 있습니까? 스레드가 완료 될 때 콜백 될 새 스레드를 정의하는 방법은 무엇입니까?

도움 주셔서 감사합니다. 질문 1 번에 대한

답변

1

:

당신은 사용해야합니다 ProgressDialog 또는 작업이 실행되는 사용자에게 보여주기 위해있는 ProgressBar. 자세한 내용은 여기에서 확인할 수 있습니다 질문 번호 2의 http://developer.android.com/reference/android/app/ProgressDialog.html

: 좋은 해결책은 당신에게 작동을 제어하는 ​​콜백 함수의 집합을 제공합니다이 작업을 위해 AsyncTask을 사용하는 것입니다. 자세한 내용은 여기에서 확인할 수 있습니다. http://developer.android.com/reference/android/os/AsyncTask.html

희망이 있습니다.

1
  1. 사용자 정의 레이아웃을 정의하고 Activity.setContentView 메소드를 사용하여 원하는 것을 사용자의 GUI에 넣을 수 있습니다. 예를 들어 ProgressBar 위젯을 넣을 수 있습니다.

  2. 주목 해 주신 바와 같이, 자바 SE에 Android 앱을 작성하셨습니다. 스레드가 완벽하게 지원됩니다.

2

은 AsyncTask를 사용합니다. 다음과 같이 바뀝니다.

public void sendImage() { 
    SendToServer.execute(); 
} 

protected class SendToServer extends AsyncTask<Void, Boolean, Void> 
{  

    @Override 
    protected void onPreExecute() 
    { 
     //display your dialog 
    } 

    @Override 
    protected Boolean doInBackground(Void... arg0) { 

     //code to send your image to the serve 
    } 

    @Override 
    protected void onPostExecute (Boolean updateSuccess) 
    {  
     //close your dialog 
     //If image was successfully sent open your other activity 
    } 
} 
관련 문제