마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

AsyncTask에서 서로 값이 다르게 나옵니다 [closed]

0 추천
public class ProgressAsyncTask extends AsyncTask<ProgressBar, Integer, Integer> {

  protected ProgressBar progressBar;

  @Override
  protected void onPreExecute() {
   super.onPreExecute();
  }

  @Override
  protected Integer doInBackground(ProgressBar... params) {
   progressBar = params[0];
   publishProgress(1, 100);
   try {
    while(progressBar.getProgress() < progressBar.getMax()) {
     if(!isShowing()) {
      break;
     }
     Thread.sleep(500);
     publishProgress(0 , 10);
    }
   } catch(InterruptedException ie) {
    Log.e("CommonProgressPopup", "AsyncTask is InterruptedException");
    ie.printStackTrace();
   }

   return 1;
  }

  @Override
  protected void onProgressUpdate(Integer... params) {
   if(params[0] == 1) {
    progressBar.setMax(params[1]);
   }else if(params[0] == 0) {
    progressBar.incrementProgressBy(params[1]);
   }
   Log.e("CommonProgressPopup",  "onProgressUpdate = " + Integer.toString(progressBar.getProgress()) + "%");
  }

  @Override
  protected void onPostExecute(Integer result) {
   if(result == 1) {
    Toast.makeText(mContext.getApplicationContext(), "프로그래스바" +  Integer.toString(progressBar.getProgress()) + "%", Toast.LENGTH_SHORT).show();
   } 
   Log.e("CommonProgressPopup",  "onPostExecute = " + Integer.toString(result) + "%");
   super.onPostExecute(result);
  }

  @Override
  protected void onCancelled(Integer result) {
   Log.e("CommonProgressPopup", "AsyncTask is onCancelled");
   super.onCancelled();
  }

 }

안녕하세요 AsyncTask를 통해서 프로그래스 바를 구현해보고 있습니다

그런데 프로그래스바가 꽉차면 토스트를 띄워 100%를 표현하고

중간에 백키등으로 종료되면 해당 진척도까지만 % 표현해주고 싶어서 코드를 짜보았는데... 100% 일때는 정상으로 나오는데

100% 가 아닐경우에는 0 또는 10으로만 출력이 됩니다...

혹시 이유를 알 수 있을까요...

소스코드 첨부드립니다

 

 

질문을 종료한 이유: 백버튼에 프로그래스를 초기화하는 함수를 넣어두었는데 망각하고 있는 실수가 일어남... ㅠㅠ
디날로그 (1,030 포인트) 님이 2014년 8월 27일 질문
디날로그님이 2014년 8월 27일 closed
...