Android с AsyncTask - PullRequest
       25

Android с AsyncTask

0 голосов
/ 05 июля 2018

Привет всем
Я новичок в Android Я пытаюсь сохранить двоичный файл с Asynctask и показать процесс в TextView

Это макет:

        <TextView
        android:id="@+id/textView_pecent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

А это мой код Java:

    private class hideit extends AsyncTask<String, Integer, Boolean> {
    @Override
    protected Boolean doInBackground(String... urls) {
        try{

            int c;
            while((c = Data.read()) != -1) {
                Data.write(c);
            }

        }catch (IOException e){
            e.printStackTrace();
        }

        return true;
    }

    protected void onProgressUpdate(Integer... progress) {
      textview.setText(INTEGER.toStirng(x)); //x =0
      x++
    }

    protected void onPostExecute(Boolean result) {

        Toast.makeText(getActivity(),"Done", Toast.LENGTH_LONG).show();
    }
 }

Как мне использовать процесс публикации? Я много искал, но все используют цикл sleep или for или while, но вы не можете выполнить свой процесс с помощью sleep
Я так запутался, как я могу использовать эту функцию, чтобы показать мой процесс в TextView?

Должен ли я звонить много раз?
Спасибо

редактирование: Это пример:

  protected String doInBackground(Integer... params) {
        for (; count <= params[0]; count++) {
            try {
                Thread.sleep(1000);
                publishProgress(count);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        return "Task Completed.";
    }

Как я могу добавить приведенный ниже код к примеру

            try{

            int c;
            while((c = Data.read()) != -1) {
                Data.write(c);
            }

        }catch (IOException e){
            e.printStackTrace();
        }

        return true;
    }
...