@Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); // 网络发生变化时 if (NET_ACTION.equals(action)) { ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); // 当切换到只有移动网络,只有当非只在wifi下才自动开启下载 if (wifi.isConnected()) { for (DownloadJob job : BrowserApp.getInstance().getDownloadManager().getQueuedDownloads()) { if (!job.isUserPause() && (job.getStatus() == DownloadJob.PAUSE || job.getStatus() == DownloadJob.WAITING)) job.start(); } } } if (SPEED_ACTION.equals(action)) { boolean cutSpeed = intent.getBooleanExtra("player", false); if (cutSpeed) { int dn = BrowserApp.getInstance().getDownloadManager().downloading_num; for (DownloadJob job : BrowserApp.getInstance().getDownloadManager().getQueuedDownloads()) { if (job.getStatus() == DownloadJob.DOWNLOADING) { job.dn = dn; job.pauseOnSpeed(); } BrowserApp.getInstance().getDownloadManager().notifyObservers(); } } else { for (DownloadJob job : BrowserApp.getInstance().getDownloadManager().getQueuedDownloads()) { if (job.getStatus() == DownloadJob.PAUSEONSPEED) job.start(); } } } if (DOWNLOADONLYWIFI.equals(action)) { boolean isDownloadOnlyWifi = intent.getBooleanExtra("isDownloadOnlyWifi", true); // 当非移动网络时 if (!(NetworkUtil.reportNetType(BrowserApp.getInstance()) == 2)) return; if (isDownloadOnlyWifi) { for (DownloadJob job : BrowserApp.getInstance().getDownloadManager().getQueuedDownloads()) { if (job.getStatus() == DownloadJob.DOWNLOADING) job.pauseOnSetWifiChange(); } } else { for (DownloadJob job : BrowserApp.getInstance().getDownloadManager().getQueuedDownloads()) { if (job.getStatus() == DownloadJob.PAUSE) { job.getEntity().setUserPauseWhen3G(false); job.start(); } } } } if (OFFLINECACHE.equals(action)) { boolean isDownload = intent.getBooleanExtra("download", true); if (isDownload) { for (DownloadJob job : BrowserApp.getInstance().getDownloadManager().getQueuedDownloads()) { if (job.getStatus() == DownloadJob.PAUSEONOFFLINECACHE) { job.start(); } } } else { for (DownloadJob job : BrowserApp.getInstance().getDownloadManager().getQueuedDownloads()) { if (job.getStatus() == DownloadJob.DOWNLOADING) { job.pauseOnOfflineCache(); } } } } }