В AsyncTask Как передавать данные из doInBackground () в основной интерфейс «мгновенно», а не после каждого цикла? (BufferedReader)

EDIT1:

Я изменил код так, чтобы обновление было выполнено в цикле while. ОДНАКО, НЕТ ИЗМЕНЕНИЯ. ПОКАЗЫВАЙТЕ ЭТО В КОДЕ ТАКЖЕ, удалены другие несоответствующие строки в onProgressUpdate (). ПОКАЗАНО В КОДЕ НИЖЕ.

Пожалуйста, ответьте, как вы бы научили любителя. Я передаю данные из doInBackground () в основной интерфейс в настоящее время. Оно работает. Тем не менее, это очень медленно. Я хочу отображать «мгновенные» результаты, а не после завершения цикла. Вот как код написан, однако, с точки зрения производительности, если цикл выполняется 100 раз, я получаю результаты AT только один раз после завершения 100 итераций. Это странно Я хочу вывод результатов после каждой итерации. Как этого добиться. В настоящее время;

    protected Void doInBackground(Void... params) 
        {

            try {
    //bunch of code
for(int k=x1[3];k<=x2[3];k++)
            {
//Process process = execute it;
    reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
                    int j;
                    char[] buffer = new char[4096];
                    StringBuffer output = new StringBuffer();
                    while ((j = reader.read(buffer)) > 0)
                    {
                    output.append(buffer, 0, j); 
                    }
                    str = output.toString();
                    Log.d("1:STR VALUE", str);
                    publishProgress(str);
                    reader.close();  

    } //FOR loop ends
                 }}
    protected void onProgressUpdate(String... values) {
            results1.append(str);
            results1.append("\n");
            super.onProgressUpdate(values);
        }

Как изменить вывод StringBuffer так, чтобы я получал мгновенные результаты после того, как читатель получит данные? Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос