title: Android download apk file and save to INTERNAL STORAGE
body: <p>I have been stuck for days when developing a function that allow user to check for new app update (I use local server as my distribution point).
  The problem is the downloading progress seems working perfectly but I could not find the downloaded file anywhere in my phone (i have no sd card / external memory).
  Below is what i have came so far.</p>
  
  <pre><code> class DownloadFileFromURL extends AsyncTask&lt;String, String, String&gt; {
      ProgressDialog pd;
      String path = getFilesDir() + "/myapp.apk";
      @Override
      protected void onPreExecute() {
          super.onPreExecute();
          pd = new ProgressDialog(DashboardActivity.this);
          pd.setTitle("Processing...");
          pd.setMessage("Please wait.");
          pd.setMax(100);
          pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
          pd.setCancelable(true);
          //pd.setIndeterminate(true);
          pd.show();
  
      }
  
      /**
       * Downloading file in background thread
       * */
      @Override
      protected String doInBackground(String... f_url) {
          int count;
  
          try {
  
              URL url = new URL(f_url[0]);
              URLConnection conection = url.openConnection();
              conection.connect();
  
              // download the file
              InputStream input = new BufferedInputStream(url.openStream());
              OutputStream output = new FileOutputStream(path);
  
              byte data[] = new byte[1024];
  
              long total = 0;
  
              while ((count = input.read(data)) != -1) {
                  total += count;
                  publishProgress("" + (int) ((total * 100) / lenghtOfFile));
  
                  // writing data to file
                  output.write(data, 0, count);
              }
  
              // flushing output
              output.flush();
              // closing streams
              output.close();
              input.close();
  
          } catch (Exception e) {
              Log.e("Error: ", e.getMessage());
          }
          return path;
      }
  
      protected void onProgressUpdate(String... progress) {
          pd.setProgress(Integer.parseInt(progress[0]));
      }
  
      @Override
      protected void onPostExecute(String file_url) {
          // dismiss the dialog after the file was downloaded
          if (pd!=null) {
              pd.dismiss();
          }
      // i am going to run the file after download finished
          StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
          StrictMode.setVmPolicy(builder.build());
  
          Intent i = new Intent(Intent.ACTION_VIEW);
  
          i.setDataAndType(Uri.fromFile(new File(file_url)), "application/vnd.android.package-archive" );
          i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
          Log.d("Lofting", "About to install new .apk");
  
          getApplicationContext().startActivity(i);
      }
  
  }
  </code></pre>
  
  <p>After the progress dialog reach 100% and dismissed, I could not find the file. I assume that's the reason application cannot continue install downloaded apk.</p>
  
  <p>Did I miss some code ?</p>