Как изменить статус прогресса - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть файл PDF на моей базе Firebase.Я использую библиотеку AndroidPDFViewer .Затем я получаю данные, используя AsyncTask.

. Я хочу знать, как остановить мой ProgressBar, используя функцию isFinishedI() в моем классе представления, так как этот цикл while не завершается?

public class PDFHandler {

    private PDFView pdfView =  null;
    private RetriverPDFStream retriverPDFStream;

    private RetriverPDFStream getRetriverPDFStream(){ return this.retriverPDFStream; }

    public void setPdfView(PDFView pdfView)
    {
        this.pdfView = pdfView;
    }

    public void openOnline(String link)
    {
        retriverPDFStream = new RetriverPDFStream();
        retriverPDFStream.execute(link);
    }

    public boolean isFinished ()
    {
        if(getRetriverPDFStream().getStatus() == AsyncTask.Status.RUNNING){
            return false;
        }else{
            return true;
        }
    }


    //This class to retrieve pdf online asynchronously
    public class RetriverPDFStream extends AsyncTask<String,Void, InputStream> {

        @Override
        protected InputStream doInBackground(String... strings) {
            InputStream inputStream = null;
            try{
                URL url = new URL(strings[0]);
                HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
                if(urlConnection.getResponseCode() == 200)
                {
                    inputStream = new BufferedInputStream(urlConnection.getInputStream());
                }
            }catch (IOException e){
                return null;
            }
            return inputStream;
        }

        @Override
        protected void onPostExecute(InputStream inputStream) {
            pdfView.fromStream(inputStream).load();
        }
    }
}

При создании метода

protected void onCreate(Bundle savedInstanceState) {
    pdfView = findViewById(R.id.pdfView);
    progressBar = findViewById(R.id.progressBar);
    //This is function read PDF from URL
    PDFHandler pdfHandler = new PDFHandler();
    pdfHandler.setPdfView(pdfView);
    pdfHandler.openOnline(link);
    progressBar.setVisibility(View.VISIBLE);
    while(!pdfHandler.isFinished()){
         progressBar.setVisibility(View.INVISIBLE);
}

1 Ответ

0 голосов
/ 07 февраля 2019
public boolean isFinished ()
{
    if(getRetriverPDFStream().getStatus() == AsyncTask.Status.FINISHED)
    {
        return true;
     }
    else
    {
        return false;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...