Android 从“发送变量”;活动“;至;广播接收机。”;

Android 从“发送变量”;活动“;至;广播接收机。”;,android,broadcastreceiver,download-manager,Android,Broadcastreceiver,Download Manager,我需要从活动向清单上注册的广播接收器发送一个变量 我的场景: 我有一个可以由用户下载的文件列表,当用户单击应用程序时,会调用下载管理器,并在数据库中放置一个标志“PENDENT”。此列表由活动管理 在我的AndroidManifest中,我已使用过滤器android.intent.action.DOWNLOAD\u COMPLETE注册了一个BroadcastReceiver,当调用我的BroadcastReceiver时,我想将该注册从“PENDENT”更改为“DOWNLOAD” 观察:也许我

我需要从
活动
向清单上注册的
广播接收器
发送一个变量

我的场景:

我有一个可以由用户下载的文件列表,当用户单击应用程序时,会调用下载管理器,并在数据库中放置一个标志“PENDENT”。此列表由
活动管理

在我的
AndroidManifest
中,我已使用过滤器
android.intent.action.DOWNLOAD\u COMPLETE
注册了一个
BroadcastReceiver
,当调用我的
BroadcastReceiver
时,我想将该注册从“PENDENT”更改为“DOWNLOAD”

观察:也许我的方法不好,如果是这样,我接受建议


提前谢谢

BroadcastReceiver接收一个
意图
。变量可以包含在
意图中


下面是创建后台服务和传递
Intent
s的指南

由活动本身存储和管理文件列表可能不是最好的主意。将数据列表保存在与Activity和BroadcastReceiver分离的某个类中可能更安全——可能是某种将数据保存到文件系统的IntentService。然后您的Activity和BroadcastReceiver都可以使用IntentService来管理数据。

您应该查看downloadManager在排队时返回的downloadedId。您可以执行以下操作:

long downloadId = manager.enqueue(request);
然后,您可以将downloadId存储在数据库中,通过查询onReceive的IntentExtras上的downloadedId数据,您可以获得下载的文件。您可以通过以下方式获取额外信息:

Bundle extras = intent.getExtras();
Long downloaded_id = extras.getLong(DownloadManager.EXTRA_DOWNLOAD_ID);
希望这有帮助