Autore Topic: Iniziare un download in un IntentService all'arrivo di una notifica push  (Letto 480 volte)

Offline Noisemaker

  • Utente junior
  • **
  • Post: 58
  • Respect: +1
    • Mostra profilo
Ciao a tutti :)
Sto cercando di far partire un download quando il cellulare riceve una notifica push con un codice particolare proveniente dal mio server.
Ho usato un BroadcastReceiver che lancia poi un IntentService
Codice: [Seleziona]
public class GcmBroadcastReceiver extends WakefulBroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        // Explicitly specify that GcmIntentService will handle the intent.
        ComponentName comp = new ComponentName(context.getPackageName(),
                GcmIntentService.class.getName());
        // Start the service, keeping the device awake while it is launching.
        startWakefulService(context, (intent.setComponent(comp)));
        setResultCode(Activity.RESULT_OK);
    }
Nell'IntentService prendo tutte le info che mi servono dalla notifica push (nome del file e URL) ma quando vado a istanziare il DownloadManager per far partire il download il logcat mi da questi messaggi
Codice: [Seleziona]
10-03 15:33:29.899: W/MessageQueue(23800): Handler (android.media.MediaPlayer$EventHandler) {4100f508} sending message to a Handler on a dead thread
10-03 15:33:29.899: W/MessageQueue(23800): java.lang.RuntimeException: Handler (android.media.MediaPlayer$EventHandler) {4100f508} sending message to a Handler on a dead thread
10-03 15:33:29.899: W/MessageQueue(23800):         at android.os.MessageQueue.enqueueMessage(MessageQueue.java:294)
10-03 15:33:29.899: W/MessageQueue(23800):         at android.os.Handler.sendMessageAtTime(Handler.java:473)
10-03 15:33:29.899: W/MessageQueue(23800):         at android.os.Handler.sendMessageDelayed(Handler.java:446)
10-03 15:33:29.899: W/MessageQueue(23800):         at android.os.Handler.sendMessage(Handler.java:383)
10-03 15:33:29.899: W/MessageQueue(23800):         at android.media.MediaPlayer.postEventFromNative(MediaPlayer.java:2066)
10-03 15:33:29.899: W/MessageQueue(23800):         at dalvik.system.NativeStart.run(Native Method)
Questo invece il codice per il download:
Codice: [Seleziona]
private void downloadFile(String downloadUrl, String name)
    {           
            DownloadManager.Request request = new DownloadManager.Request(Uri.parse(downloadUrl));
        request.setDescription("Some descrition");
        request.setTitle("Some title");

        request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, name);
        request.setVisibleInDownloadsUi(true);
        // get download service and enqueue file
        DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
        manager.enqueue(request);
    }
Non riesco assolutamente a capire cosa sia pur avendo guardato in rete a cosa si riferisce l'errore.
Qualcuno sa aiutarmi?
« Ultima modifica: 03 Ottobre 2013, 15:48:12 CEST da Noisemaker »