1

Wenn Datei Download gestartet wird, zeige ich Fortschrittsbalken und wenn es abgeschlossen ist, änderte ich Fortschrittsbalken mit erfolgreich Download-Symbol. Es funktioniert perfekt, aber das Problem, das ich konfrontiert bin, dass, wenn jemand auf die Schaltfläche Abbrechen im Benachrichtigungsfeld klickt, sendet es keine Sendung, die ich für den Empfang von Broadcast erstellt habe, wenn die Datei heruntergeladen wird.So erfassen Sie Abbrechen Download-Ereignis in Android programmgesteuert

Ich benutze DownloadManager, um die Dateien herunterzuladen und wie wir in Marshmallow wissen, erhalten wir eine Option zum Herunterladen von Dateien, aber wie kann ich Ereignis dieser Abbrechen-Schaltfläche erfassen.

Hier ist mein Code:

<receiver android:name=".adapters.VideoListAdapter$VideoDownloadedReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.DOWNLOAD_COMPLETE" /> 
      <action android:name="android.intent.action.DOWNLOAD_CANCEL" /> 
     </intent-filter> 
    </receiver> 

public static class VideoDownloadedReceiver extends BroadcastReceiver implements AsyncResponse { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     //perform event 
     //works well if files gets completed but not if download gets cancel 
    } 
} 

Antwort

0

ACTION_DOWNLOAD_CLICKED noch ausgelöst werden, aber wenn der Download ist hier aufgehoben wird nicht in der Abfrage-Cursor.

Beispiel für Code in Kotlin:

private fun wasCanceled(downloadId: Long): Boolean { val cursor = downloadManager.query(DownloadManager.Query().setFilterById(downloadId)) return cursor == null || !cursor.moveToFirst() }

+0

Sie werden es wahrscheinlich hier beheben https://issuetracker.google.com/issues/37115685 – Calin

Verwandte Themen