2012-03-20 2 views
0

주로 progressDialog를 사용하여 AsyncTask에서 "로딩 화면 만들기"를 달성하는 방법에 대한 딜레마가 있습니다.로드 중 화면 만들기를위한 AsyncTask에 관해서

내가하고있는 일은 입력이 필요없고 텍스트보기 만 보여주는 방법이 있다는 것입니다.

개인 클래스 DownloadFilesTask은 AsyncTask를 확장 {

은 그래서 내 방법이하는 것은 단순히 1 + 1 = 2처럼하지만 다음 텍스트 뷰에 표시 받아보기 giganormous 문자열을 저장하는 더 복잡한 방법입니다.

내 질문은이 긴로드 전에 진행 대화 상자의 결과를 어떻게 얻을 수 있습니까?

+0

아래에 제공된 답변이 실제로 귀하의 질문에 답변이되지 않는 경우 설명이 매우 명확하지 않습니다. 그런 다음 질문을 다시 디자인해야하며, 성취하려는 것을 이해하는 데 도움이되는 코드 스 니펫을 제공해야합니다. – Egor

답변

2
private progressDialog pd; 
public void runMethod(){ 
new doStuuff.execute(); 
} 


private Class doStuff extends AsyncTask<Void, Void, Void>{ 

     @Override 
     protected Void doInBackground(Void... params) { 
//Everything in your code except for anything that is xml or relates with any view. Mostly calculations 
      return null; 
     } 

     @Override 
     protected void onPostExecute(Void result) { 
      // TODO Auto-generated method stub 
//Your main background view code ends up falling here 
      pd.dismiss(); 
     } 

     @Override 
     protected void onPreExecute() { 
      // TODO Auto-generated method stub 
//Your optional view and where it starts 
pd = ProgressDialog.show(View_Book_As_Whole.this, "Loading", "Please wait..."); 
     } 

} 

나는 개념을 이해하지 못하는 멍청한 놈 이었지만 이해하면 비교적 쉽습니다. onPreExecute()는 무엇보다 먼저 실행되고 우선 순위를 먼저 취한 다음 doInBackground()로 이동 한 다음 onPostExecute()가 최종 작업을 실행 함을 의미합니다. 이 모든 것은 UI의 백그라운드에서 작동합니다.

4

Android에는 이미 progress dialog class이 내장되어 있습니다. 귀하의 필요에 부합하지 않는 한, 사용하지 않는 것이 좋습니다.

+0

내가 원했던 것은 활동이로드 될 때 진행 상황 대화 상자를 먼저 보여줄 수 있어야한다는 것이 었습니다. 그러나 그것은 전체 이벤트가로드되는 실제 이벤트와 동시에 표시됩니다. – sdfwer