Note that there are some explanatory texts on larger screens.

plurals
  1. POonPostExecute called before doInBackground completes - Async task
    primarykey
    data
    text
    <p>i have method like this :</p> <pre><code>public void extractFiles() { AsyncTask&lt;Void, Void, Boolean&gt; extractionTask = new AsyncTask&lt;Void, Void, Boolean&gt;() { @Override protected void onPreExecute() { progressDialog = new ProgressDialog(Activity.this); progressDialog.setCancelable(false); progressDialog.setMessage("Extracting Files Please wait..."); progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); progressDialog.setProgress(0); progressDialog.show(); super.onPreExecute(); } @Override protected Boolean doInBackground(Void... params) { // TODO Auto-generated method stub String xapkFilePath = XAPKFilePath(Activity.this); String exportDirectory = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/data/" + Activity.this.getPackageName() + "/files/"; File exportDirectoryFilepath = new File(exportDirectory); exportDirectoryFilepath.mkdirs(); ZipHelper zhelper = new ZipHelper(); System.out.println("In background called"); zhelper.unzip(xapkFilePath, exportDirectoryFilepath); return true; } @Override protected void onPostExecute(Boolean result) { super.onPostExecute(result); if (progressDialog != null &amp;&amp; progressDialog.isShowing()) { progressDialog.dismiss(); System.out.println("progress dialog dismissed"); } if (result) { //start intent. } } }; extractionTask.execute(); } public class ZipHelper { boolean zipError = false; public boolean isZipError() { return zipError; } public void setZipError(boolean zipError) { this.zipError = zipError; } public void unzip(String archive, File outputDir) { try { Log.d("control", "ZipHelper.unzip() - File: " + archive); ZipFile zipfile = new ZipFile(archive); for (Enumeration e = zipfile.entries(); e.hasMoreElements();) { ZipEntry entry = (ZipEntry) e.nextElement(); System.out.println("OUTPUT DIR 1*" + outputDir); System.out.println("ENTRY IS " + entry); unzipEntry(zipfile, entry, outputDir); } } catch (Exception e) { Log.d("control", "ZipHelper.unzip() - Error extracting file " + archive + ": " + e); setZipError(true); } } private void unzipEntry(ZipFile zipfile, ZipEntry entry, File outputDir) throws IOException { if (entry.isDirectory()) { createDirectory(new File(outputDir, entry.getName())); return; } File outputFile = new File(outputDir, entry.getName()); if (!outputFile.getParentFile().exists()) { createDirectory(outputFile.getParentFile()); System.out.println("OUTPUT FILE IS " + outputFile.getParentFile()); } Log.d("control", "ZipHelper.unzipEntry() - Extracting: " + entry); BufferedInputStream inputStream = new BufferedInputStream(zipfile.getInputStream(entry)); BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(outputFile)); try { IOUtils.copy(inputStream, outputStream); } catch (Exception e) { Log.d("control", "ZipHelper.unzipEntry() - Error: " + e); setZipError(true); } finally { outputStream.close(); inputStream.close(); } } private void createDirectory(File dir) { Log.d("control", "ZipHelper.createDir() - Creating directory: " + dir.getName()); if (!dir.exists()) { if (!dir.mkdirs()) { throw new RuntimeException("Can't create directory " + dir); } } else { Log.d("control", "ZipHelper.createDir() - Exists directory: " + dir.getName()); } } } </code></pre> <p>Here i call the method like this <code>extractFiles()</code> but what is happening is even before the doInBackground is completed that is extracting the files for which i am showing a spinner , the onPostExecute is called and moves to next screen.</p> <p>What is wrong here?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload