title: How download file with service in android?
body: <p>I want download a file from internet with service. I found the source code and the code worked well. But i have a problem when i back from app the download are stopping or when i clear RAM, it also are stopping. So that i want found downloading code such as Google Play, which never stop when clear RAM, or app history. This is my source code:</p>
  
  <pre><code>public class Temp extends IntentService {
  public static final int UPDATE_PROGRESS = 8344;
  private int lastupdate=0;
  private NotificationManager nm;
  private Builder mBuilder;
  public Temp() {
  
      super("Temp");
  
  
  }
  
  @Override
  public int onStartCommand(Intent intent, int flags, int startId) {
      Log.d("SERVICE-ONCOMMAND", "onStartCommand");
      return START_STICKY;
   }
  
  @Override
  protected void onHandleIntent(Intent intent) {
      Log.e("ok","ok");
      nm = (NotificationManager)  getSystemService(NOTIFICATION_SERVICE);
      mBuilder = new NotificationCompat.Builder(this);
      mBuilder.setContentTitle(
              "Picture Download dnsadg sadgasjdgashgd asgd asjdg asjgd sajgd s")
              .setContentText("Download in progress")
              .setSmallIcon(R.drawable.icon_app).setContentInfo("0%");
  
      mBuilder.setOngoing(true);  
      File root = new File(Environment.getExternalStorageDirectory()
              + "/aaaa");
      String urlToDownload = "http://dl2.mid.az/endir.php?file=uploads/Exclusive/miri_yusif_-_yoxam_men_mp3.mid.az.mp3";
     // ResultReceiver receiver = (ResultReceiver) intent.getParcelableExtra("receiver");
      try {
          URL url = new URL(urlToDownload);
          URLConnection connection = url.openConnection();
          connection.connect();
          // this will be useful so that you can show a typical 0-100% progress bar
          int fileLength = connection.getContentLength();
  
          // download the file
          InputStream input = new BufferedInputStream(url.openStream());
          OutputStream output = new FileOutputStream(new File(root.getPath(),
                  "ok.mp3"));
  
          byte data[] = new byte[1024];
          long total = 0;
          int count;
          while ((count = input.read(data)) != -1) {
              total += count;
  
              progressChange((int)(total * 100) / fileLength);
              // publishing the progress....
           //   Bundle resultData = new Bundle();
           //   resultData.putInt("progress" ,(int) (total * 100 / fileLength));
           //   receiver.send(UPDATE_PROGRESS, resultData);
              output.write(data, 0, count);
          }
  
          output.flush();
          output.close();
          input.close();
      } catch (IOException e) {
          e.printStackTrace();
      }
  
     // Bundle resultData = new Bundle();
    //  resultData.putInt("progress" ,100);
    //  receiver.send(UPDATE_PROGRESS, resultData);
  }
  
  @Override
  public void onDestroy() {
      Log.e("DESTROY", "DESTROY");
      super.onDestroy();
  }
  void progressChange(int progress){
  
  
      if (lastupdate != progress) {
          lastupdate = progress;
          // not.contentView.setProgressBar(R.id.status_progress,
          // 100,Integer.valueOf(progress[0]), false);
          // inform the progress bar of updates in progress
          // nm.notify(42, not);
          if (progress &lt; 100) {
              mBuilder.setProgress(100, Integer.valueOf(progress),
                      false).setContentInfo(progress+"%");
              nm.notify(12, mBuilder.build());
                 Intent i = new Intent("com.russian.apps.TabActivity").putExtra("some_msg",progress+"%");
                  this.sendBroadcast(i);
          } else {
              mBuilder.setContentText("Download complete")
              // Removes the progress bar
                      .setProgress(0, 0, false).setOngoing(false).setContentInfo("");;
  
              nm.notify(12, mBuilder.build());
  
          }
  
      }
  
  }
  }
  </code></pre>