2015-12-05 4 views
-1

je suis nouveau pour télécharger côté gestionnaire d'android, je ne peux pas annuler le téléchargement lorsque l'utilisateur a cliqué sur un bouton, je mets l'identifiant actuel de la demande, mais toujours havent le résoudre, me aider thnks à l'avance Heres la classe principalecomment annuler un téléchargement lorsque l'utilisateur a cliqué dans android

public class DownloadManagerActivity extends Activity { 
    private long enqueue; private DownloadManager dm; private long  downloadReference; Query query; Cursor c; String action; 
long downloadId; 
Request request; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    BroadcastReceiver receiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      action = intent.getAction(); 
      if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) { 
       downloadId = intent.getLongExtra(
         DownloadManager.EXTRA_DOWNLOAD_ID, 0); 
       query = new Query(); 
       query.setFilterById(enqueue); 
       c = dm.query(query); 
       if (c.moveToFirst()) { 
        int columnIndex = c 
          .getColumnIndex(DownloadManager.COLUMN_STATUS); 
        // 
        if (DownloadManager.STATUS_SUCCESSFUL == c.getInt(columnIndex)) { 
         Toast.makeText(DownloadManagerActivity.this, "Download Complete", Toast.LENGTH_LONG).show(); 

        } 


       } 
      } 
     } 
    }; 

    registerReceiver(receiver, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE)); 
} 

public void onClick(View view) { 
    dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); 
    request = new Request(Uri.parse("http://192.168.10.6/mytv/mashup.mp4")); 
    enqueue = dm.enqueue(request); 

} 

public void showDownload(View view) { 
    Intent i = new Intent(); 
    i.setAction(DownloadManager.ACTION_VIEW_DOWNLOADS); 
    startActivity(i); 
} 

public void cancelDownload(View view) { 
    //downloadReference= intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0); 
    downloadReference = dm.enqueue(request); 
    dm.remove(downloadReference); 

    Toast.makeText(DownloadManagerActivity.this, "Download Cancelled", Toast.LENGTH_SHORT).show(); 

} 

Répondre

3

downloadReference = dm.enqueue(request) créer une nouvelle tâche et retourner une nouvelle id.You devrait utiliser l'ID précédent.

public void cancelDownload(View view) { 
    //downloadReference= intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0); 
    //downloadReference = dm.enqueue(request); 
    dm.remove(enqueue); 

    Toast.makeText(DownloadManagerActivity.this, "Download Cancelled", Toast.LENGTH_SHORT).show(); 

} 
+0

Thnks aloot .. u juste fait ma journée .. la soultion était si simple je na pas l'obtenir b4, mais thnks encore ... fonctionne comme un charme –

+0

downloadReference = dm.enqueue (demande) créer un nouveau tâche. –