title: Install apk after download with download manager and exit from app
body: <p>i have created an android app and from server if any new version had released it will automatically start downloading by using inbuilt 'download manager' . for auto install after finish the download i have created a broadcast receiver to inform that download has finished and completed and then i start to install it. it works fine during i stay in app and don't close it. but my problem is when i close the application . so after finishing the download i want to automatically install it. but i wont happen. what should i do for this issue?</p>
  
  <pre><code>    private void download(String link) {
      DownloadManager.Request request = new DownloadManager.Request(Uri.parse(link));
      request.setDescription("new version");
      request.setTitle("app name");
      request.setMimeType("application/vnd.android.package-archive");
      request.setDestinationInExternalFilesDir(getApplicationContext(), Environment.DIRECTORY_DOWNLOADS, "myapk.apk");
      request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
      request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
  
      downloadID = dm.enqueue(request);
  
  
      br = new BroadcastReceiver() {
  
          @Override
          public void onReceive(Context c, Intent i) {
              String action = i.getAction();
  
              if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
  
                  DownloadManager.Query query = new DownloadManager.Query();
                  query.setFilterById(downloadID);
  
                  Cursor downloadResult = dm.query(query);
  
                  if (downloadResult.moveToFirst()) {
                      int statusColumnIndex = downloadResult.getColumnIndex(DownloadManager.COLUMN_STATUS);
                      int status = downloadResult.getInt(statusColumnIndex);
  
                      if (status == DownloadManager.STATUS_SUCCESSFUL) {
                          //download completed successfully
                          int localFileNameId = downloadResult.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME);
  
                          String downloadPathFile = downloadResult.getString(localFileNameId);
                          String downloadPathDir = downloadPathFile.substring(0, downloadPathFile.lastIndexOf("/") + 1);
                          String downloadName = downloadPathFile.substring(downloadPathFile.lastIndexOf("/") + 1);
  
                          Log.i("name =", downloadName);
  
                          File file = new File(downloadPathDir);
                          File[] files = file.listFiles();
                          for (File f : files) {
                              if (f.isFile() &amp;&amp; f.exists() &amp;&amp; !f.getName().equals(downloadName)) {
                                  f.delete();
                              }
                          }
  
                          Intent intent = new Intent(Intent.ACTION_VIEW);
                          intent.setDataAndType(Uri.fromFile(new File(downloadPathFile)), "application/vnd.android.package-archive");
                          intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                          startActivity(intent);
                          unregisterReceiver(br);
                      }
                  }
              }
          }
      };
  
      registerReceiver(br, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
  
  }
  </code></pre>