没有 SD 卡时无法使用浏览器下载 APK 文件 [重复]
Posted
技术标签:
【中文标题】没有 SD 卡时无法使用浏览器下载 APK 文件 [重复]【英文标题】:Unable to download APK file using browser when no SD card is present [duplicate] 【发布时间】:2012-03-20 02:39:10 【问题描述】:可能重复:Activity has leaked window that was originally added
当我尝试下载 APK 文件时,我的浏览器崩溃了。我尝试以两种不同的方式做到这一点:
调用:
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://myUrl/myFile.apk"));
startActivity(intent);
让用户点击alertDialog
中的链接,例如:
String myUrl = "http://myUrl/myFile.apk";
final AlertDialog d = new AlertDialog.Builder(context)
.setPositiveButton("Dismiss", listener)
.setCancelable(false)
.setIcon(iconId)
.setTitle(title)
.setMessage(html.fromHtml("<a href=\"" + myUrl + "\">MyLink</a>"))
.create();
d.show();
无论哪种方式,浏览器都会启动并显示一个对话框,关于保存到 SD 卡的内容,然后对话框消失,没有任何反应。我没有 SD 卡(如果我安装 SD 卡,我没有问题),但如果用户没有 SD 卡,我需要它在不崩溃的情况下工作。
在 Logcat 中我可以看到:
Activity com.android.browser.BrowserActivity 泄露了最初添加在这里的窗口 com.android.internal.policy.impl.PhoneWindow$DecorView@2bff4f40
对此我能做些什么?
【问题讨论】:
this 的可能重复项。 很抱歉,由于我不认为它是重复的,所以它被关闭了。有人指出,另一个问题是关于解除您自己的警报,我知道它是如何工作的。但也许我应该更清楚地回答我的问题。我想知道为什么浏览器会出现这个问题,如果 SD 卡丢失,它就无法下载文件。由于我完全将下载工作留给了标准浏览器,因此我肯定无法解除浏览器自己的警报。所以问题不是浏览器内存泄漏,而是浏览器下载问题! 【参考方案1】:致电Environment.getExternalStorageState()
测试是否已安装 SD 卡。如果不是,请不要开始下载。
【讨论】:
以上是关于没有 SD 卡时无法使用浏览器下载 APK 文件 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
未安装 sd 卡时 Environment.getExternalStorageDirectory() 是不是返回可用的数据文件夹?