在Android/Kotlin中,您可以使用本地BroadcastReceiver来监听DownloadManager的下载完成广播。以下是一个示例代码,可以在DownloadManager下载完成后激活本地BroadcastReceiver:
class DownloadReceiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
// 处理DownloadManager下载完成后的逻辑
if (intent?.action == DownloadManager.ACTION_DOWNLOAD_COMPLETE) {
// 下载完成后的处理代码
}
}
}
class MainActivity : AppCompatActivity() {
private lateinit var downloadReceiver: DownloadReceiver
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
downloadReceiver = DownloadReceiver()
val filter = IntentFilter()
filter.addAction(DownloadManager.ACTION_DOWNLOAD_COMPLETE)
registerReceiver(downloadReceiver, filter)
}
override fun onDestroy() {
super.onDestroy()
unregisterReceiver(downloadReceiver)
}
}
在上述代码中,我们在MainActivity的onCreate方法中注册了DownloadReceiver,并在onDestroy方法中注销了它。这样,当DownloadManager下载完成后,DownloadReceiver将会接收到广播并执行相应的处理逻辑。
请确保在AndroidManifest.xml文件中声明DownloadReceiver:
这样,您的本地BroadcastReceiver就可以从DownloadManager接收到下载完成的广播了。