Android: AsyncTask how to update ProgressDialog step

I want to analyze a web page and visualize horizontal horizontal progress and increase its byte to byte, is this possible?

+6
source share
1 answer

Try something like this,

Create ProgressDialog.

ProgressDialog mProgressDialog = new ProgressDialog(Your_Activity.this); mProgressDialog.setMessage("Here you can set a message"); mProgressDialog.setIndeterminate(false); mProgressDialog.setMax(100); mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); mProgressDialog.show(); MyAsyncTask obj = new MyAsyncTask (); obj.execute("url"); 

Class AsyncTask.

 private class MyAsyncTask extends AsyncTask<String, Integer, String>{ @Override protected String doInBackground(String... url) { int count; try { URL url = new URL(url[0]); URLConnection connection = url.openConnection(); connection.connect(); // this will be useful so that you can show a tipical 0-100% progress bar int length = connection.getContentLength(); // downlod the file InputStream input = new BufferedInputStream(url.openStream()); OutputStream output = new FileOutputStream("/sdcard/file_name.txt"); byte data[] = new byte[1024]; long total = 0; while ((count = input.read(data)) != -1) { total += count; // publishing the progress.... publishProgress((int)(total*100/length)); output.write(data, 0, count); } output.flush(); output.close(); input.close(); } catch (Exception e) {} return null; } @Override public void onProgressUpdate(String... args){ mProgressDialog.setProgress(args[0]); } } } 

You must provide these permissions in the AndroidManifest file.

 <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
+20
source

Source: https://habr.com/ru/post/898248/


All Articles