【问题标题】:Unable to download APK file using browser when no SD card is present [duplicate]没有 SD 卡时无法使用浏览器下载 APK 文件 [重复]
【发布时间】:2012-03-20 02:39:10
【问题描述】:

可能重复:
Activity has leaked window that was originally added

当我尝试下载 APK 文件时,我的浏览器崩溃了。我尝试以两种不同的方式做到这一点:

  1. 调用:

    Intent intent = new Intent(Intent.ACTION_VIEW,
      Uri.parse("http://myUrl/myFile.apk"));
    startActivity(intent);
    
  2. 让用户点击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 卡丢失,它就无法下载文件。由于我完全将下载工作留给了标准浏览器,因此我肯定无法解除浏览器自己的警报。所以问题不是浏览器内存泄漏,而是浏览器下载问题!

标签: android browser download apk


【解决方案1】:

致电Environment.getExternalStorageState() 测试是否已安装 SD 卡。如果不是,请不要开始下载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    • 2013-12-31
    • 2021-10-20
    • 2019-08-24
    • 1970-01-01
    相关资源
    最近更新 更多