我已经在我的应用程序中实现了 DownloadManager。我知道 DownloadManager 需要最低 sdkVersion 9。但是我的应用程序的最低 sdkVersion 应该是 8。我在 sdkVersion 8 中使用 AsyncTask 进行下载。对于 9 以上的版本,我使用的是 DownloadManager。下面是我的实现方式。
if (Build.VERSION.SDK_INT >= 9) {
android.app.DownloadManager downloadManager
= (android.app.DownloadManager) getActivity().getSystemService(Context.DOWNLOAD_SERVICE);
Uri downloadUri = Uri.parse(url.replace(" ", ""));
android.app.DownloadManager.Request request = new android.app.DownloadManager.Request(downloadUri);
request.setVisibleInDownloadsUi(true);
downloadManager.enqueue(request);
Toast.makeText(getActivity(), "Download started... Please find the downloading process in notificaion bar.", Toast.LENGTH_LONG).show();
}
else if (Build.VERSION.SDK_INT == 8) {
//AysncTask for downloading...
}
当我在 Gingerbread 及以上版本中运行此代码时,DownloadManager 工作正常。如果我在 Froyo 中运行此代码,应用程序会抛出 ClassNotFoundException。我不知道为什么会发生这种情况,因为我正在检查构建版本,并且只有当设备版本高于 9 时,DownloadManager 才应该工作。Froyo 中的错误是由于 DownloadManager 的实现而发生的。当我在 Froyo 中运行应用程序时,AynceTask 应该启动,但在执行下载操作之前应用程序会抛出 ClassNotFoundException。如果有人遇到过这种情况,请提供一些解决方案。
编辑:我找不到哪一行..但是当我在 Froyo 中使用此代码打开一个活动时,我得到 ClassNotFoundException。