2012-10-22 1 views
0

내 응용 프로그램 - n jpg 이미지에서 gif 이미지를 만듭니다. 이 방법은 많은 이미지를 읽어야하므로 오랜 시간이 걸립니다. 이 메소드가 실행될 때 progressdialog를 보여주고 싶습니다. 제발, 어떤 생각이나 소스 코드 예제 도와주세요! 감사합니다.show runningdialog를 사용하여 지연 방법을 실행하는 중

+0

없음 소스 코드 예제를 여기에. 이를 위해 Google을 사용해보십시오. StackOverflow는 특정 질문에 대한 것입니다. 좋은 질문과 나쁜 질문을 보려면 [FAQ] (http://stackoverflow.com/faq)를 방문하십시오. – Eric

답변

0

여기서 두 가지 작업을 수행해야합니다. 먼저 oncreateDialog() 메서드를 사용하여 대화 상자를 만듭니다. 두 번째로 장기 실행 작업을 수행하려면 async 작업을 사용해야합니다. 비동기 작업을 시작하면 대화 상자를 표시 할 수 있으며 작업을 완료하고 활동으로 돌아 가면 다시 닫을 수 있습니다. 그냥 UI 스레드에서 그 일을하는 경우

2

그것과 같을 것이다 (권장하지 않음) :

private void myMethodThatTakesALongTime() { 
    ProgressDialog progressDialog; 
    progressDialog = new ProgressDialog(getActivity()); 
    progressDialog.setIndeterminate(true); 
    progressDialog.setMessage("Please Wait..."); 
    progressDialog.show(); 

    // Do expensive operations 

    progressDialog.dismiss(); 
} 

가 나는 AsyncTask를에이 모든 퍼팅 추천 할 것입니다. 그 결과는 다음과 같습니다

private class MyAsyncTask extends AsyncTask<String, String, String> { 

    private ProgressDialog progressDialog; 

    protected void onPreExecute() { 

     //show your dialog before you start 

     progressDialog = new ProgressDialog(getActivity()); 
     progressDialog.setIndeterminate(true); 
     progressDialog.setMessage("Please Wait..."); 
     progressDialog.show(); 
    } 

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

     // do expensive operations in here 

     return null; 
    } 

    @Override 
    public void onPostExecute(String result) { 

     //dismiss your dialog when done 

     if (progressDialog != null && progressDialog.isShowing()) { 

      progressDialog.dismiss(); 
     } 
    } 
} 

그리고 당신은 다음 줄을 사용하여이를 시작합니다 :

new MyAsyncTask().execute(String[] {}); 
관련 문제