当没有SD卡时,无法使用浏览器下载APK文件

时间:2012-03-01 15:30:43

标签: android browser download apk

  

可能重复:
  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();
    
  3. 无论哪种方式,浏览器都会启动并显示一个对话框,有关保存到SD卡的信息,然后对话框消失,不再发生任何事情。我没有SD卡(如果我改为安装SD卡,我没有问题)但如果用户没有SD卡,我需要这样做而不会崩溃。

    在Logcat中我可以看到:

      

    活动com.android.browser.BrowserActivity泄露了最初添加的窗口com.android.internal.policy.impl.PhoneWindow$DecorView@2bff4f40

    我该怎么办?

1 个答案:

答案 0 :(得分:2)

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