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

안드로이드 AsyncTask에서 for문 사용 질문입니다 고수분들 부탁드려요

–2 추천

public class MainActivity extends AppCompatActivity {

    TextView textView;
    private AsyncTask<Integer, String, Integer> myAsyncTask;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = (TextView) findViewById(R.id.textView);

        myAsyncTask = new MyAsyncTask().execute(1, 10);

    }

    public class MyAsyncTask extends AsyncTask<Integer, String, Integer> {

        @Override
        protected Integer doInBackground(Integer... params) {
            final int startNum = ????; //첫 번째 인자값
            final int endNum = ????;   //두 번째 인자값

            int sum = 0;//합을 저장하는 변수

            /* execute()에서 전달받은 첫 번째 인자부터 두 번째 인자까지의 합을 계산하는
             백그라운드 작업을 for문으로 수행(예외처리 할 것)
               - 그 결과를 “실행화면”과 같이 표시(1초마다)할 수 있도록 처리
          */

             ????


            return sum;
        }

        @Override
        protected void onProgressUpdate(String... values) {
            super.onProgressUpdate(values);

            //doInBackground()에서 전달받은 값(sum)을 textView에 설정
            ????
        }

        @Override
        protected void onPostExecute(Integer result) {
            super.onPostExecute(result);

            if(result != null){
                Toast.makeText(getApplicationContext(), "result = " + result, Toast.LENGTH_LONG).show();
            }

        }
    }
}

???? 된 부분을 못 채워넣겠습니다 고수님들 답변 부탁드립니다ㅜㅜ

공머리 (100 포인트) 님이 2018년 6월 23일 질문
공머리님이 2018년 6월 24일 수정
과제는 본인 힘으로 하셔야 합니다.

이런데 올려서 답을 드리면, 소스를 많이 바꾸지 않는 이상
조교도 모니터링 하기 때문에 검출이 가능해서 , F 처리 됩니다.

비슷한 예제 링크를 공유 해 드리니, 분석해서 직접 구현 하시는게 좋을 듯 합니다.
http://makingappfor.blogspot.com/2013/05/android-asynctask-progressdialog.html

1개의 답변

0 추천
public class MyAsyncTask extends AsyncTask<Integer, String, Integer> {

    @Override
    protected Integer doInBackground(Integer... params) {
        final int startNum = params[0]; //첫 번째 인자값
        final int endNum = params[1];   //두 번째 인자값

        int sum = 0;//합을 저장하는 변수

        /* execute()에서 전달받은 첫 번째 인자부터 두 번째 인자까지의 합을 계산하는
         백그라운드 작업을 for문으로 수행(예외처리 할 것)
           - 그 결과를 “실행화면”과 같이 표시(1초마다)할 수 있도록 처리
      */

        for (int i = startNum; i <= endNum; i++) {
            sum += i;
            publishProgress(String.valueOf(sum));
        }


        return sum;
    }

    @Override
    protected void onProgressUpdate(String... values) {
        super.onProgressUpdate(values);

        //doInBackground()에서 전달받은 값(sum)을 textView에 설정
        textView.setText(values[0]);
    }

    @Override
    protected void onPostExecute(Integer result) {
        super.onPostExecute(result);

        if (result != null) {
            Toast.makeText(getApplicationContext(), "result = " + result, Toast.LENGTH_LONG).show();
        }

    }
}
익명사용자 님이 2018년 6월 25일 답변
...