Passe dados para o BroadcastReceiver da Activity usando o DownloadManager
Estou tentando passar um objeto para um BroadcastReceiver que fará algo quando o download for concluído. Como acesso o objeto Intent no método onReceive do BroadcastReceiver a partir da minha atividade? No momento, tenho isso em minha atividade:
DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
long id = manager.enqueue(request);
e eu tenho isso no meu BroadcastReceiver que faz coisas quando o download é concluído:
DownloadManager mgr = (DownloadManager)context.getSystemService(Context.DOWNLOAD_SERVICE);
Tudo funciona bem, meu BroadcastReceiver faz o que eu quero quando o download é concluído. Mas agora eu quero passar um objeto da minha atividade para o BroadcastReceiver. Normalmente, eu apenas criava um Intent e adicionava o objeto ao Intent. Mas não criei um Intent no meu código porque o BroadcastReceiver responde ao download usando o Context.DOWNLOAD_SERVICE.
No meu BroadcastReceiver, quero obter dados do objeto Intent no método onReceive () aqui:
@Override
public void onReceive(Context context, Intent intent)
{
intent.getParcelableExtra("object");
}
Como passo dados para esse objeto Intent da minha atividade? Como faço para acessá-lo? Eu tentei usargetIntent().putExtra("object", object)
mas parece ser uma intenção diferente da usada no método onReceive do BroadcastReceiver porque recebo uma nullPointerException
Edit: aqui está o meu código relevante no AndroidManifest.xml
<receiver
android:name="com.android.devon.appfrenzy.DownloadReceiver"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.DOWNLOAD_COMPLETE" />
</intent-filter>
</receiver>