1

我已经在我的应用程序中实现了 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。

4

0 回答 0