2012-03-01 7 views
0

存在しない場合に、ブラウザを使用してAPKファイルをダウンロードすることができません:
Activity has leaked window that was originally addedなしSDカードが使用可能な重複

私はAPKファイルをダウンロードしようとすると、私のブラウザがクラッシュします。私は2つの異なる方法でこれを実行しようとしている:

  1. は呼び出し:alertDialog内のリンクをユーザーがクリックまかせ

    Intent intent = new Intent(Intent.ACTION_VIEW, 
        Uri.parse("http://myUrl/myFile.apk")); 
    startActivity(intent); 
    
  2. のように:

    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では私が見ることができます:

活動com.android.browser.BrowserActivityはもともとここ

を添加し、ウィンドウ [email protected]を漏洩した

これについて何ができますか?

+0

[this](http://stackoverflow.com/q/2850573/1101070)の可能な複製。 –

+0

私はそれが重複しているとは思わないので、これが閉鎖されたことは非常に残念です。他の質問は、あなた自身のアラートを却下することであり、それがどのように機能するか知っています。しかし、多分私は私の質問ではっきりしていたはずです。私は、なぜブラウザにこの問題があるのか​​、SDカードがない場合はファイルをダウンロードできないことを知りたかったのです。私は完全に標準のブラウザにダウンロード作業を任せているので、私は確かにブラウザがアラートを解除することについて何もしません。だから問題は、ブラウザのメモリリークではなく、ブラウザのダウンロードに関する問題でした! – user1140596

答えて

2

Environment.getExternalStorageState()を呼び出して、SDカードが装着されているかどうかをテストします。もしそうでなければ、ダウンロードを開始しないでください。

関連する問題