-5
我想注册一个侦听“android.intent.action.DOWNLOAD_COMPLETE”的broadcastreceiver。但它在AndroidManifest.xml中不可见。请帮忙意图下载完成操作在AndroidManifest.xml中不可见
我想注册一个侦听“android.intent.action.DOWNLOAD_COMPLETE”的broadcastreceiver。但它在AndroidManifest.xml中不可见。请帮忙意图下载完成操作在AndroidManifest.xml中不可见
你可以这样做。
DownloadManager downloadManager;
downloadManager = (DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE);
Uri uri = Uri.parse("http://xxx.apk");
DownloadManager.Request request = new DownloadManager.Request(uri);
// You can choose network type
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI);
downloadManager.getRecommendedMaxBytesOverMobile(getApplicationContext());
final long flag = downloadManager.enqueue(request);
IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
BroadcastReceiver receiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
long anotherFlag = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID,-1);
if(anotherFlag == flag){
// do something you want to do
}
}
};
registerReceiver(receiver, filter);
非常感谢KeLiuyue,但是我在想实现一个类,它实现了broadcastreceiver。为此,我试图添加,它不显示动作名称=“android.intent.action.DOWNLOAD_COMPLETE”。可能吗? –
user3678389
@ user3678389是的,你可以做到这一点。我的方式是动态注册BroadcastReceive.You使用静态注册BroadcastReceive.It没关系。 – KeLiuyue
@ user3678389你可以看看这个[https://developer.android.com/guide/components/broadcasts.html](https://developer.android.com/guide/components/broadcasts.html) – KeLiuyue