2011-08-08 6 views
0

SDカードが存在するかどうかを最初に検出するプログラムがあります.SDカードがない場合、再試行または終了を求める警告ダイアログが表示されます。要するに、sdカードは必須です。しかし、sdカードがない場合、アプリケーションはスレッド上で作業を続行するか、スレッドはアプリケーションのアラートダイアログ部分に行った後も継続します。要するに、私のアプリケーションでは、alertdialogを待ってからユーザーからの入力を得る必要があるということです。Android:アラートダイアログを使用してスレッドを停止する

誰もがここで私を助けることができます..私は完全にあなたの問題を理解しないおかげ

+0

多分、いくつかのコードがあなたの問題を理解するのに役立つでしょう、私はそのアーキテクチャを理解できません。間違ったことをやっているようですが、コードが表示されていないので、何が間違っているのかわかりません。 – Egor

+0

私のアプリケーションは、SDカードに保存されているビデオのリストを取得します。 onCreateメソッドを起動した直後に、私が作成した別の関数を呼び出して、sd-cardがマウントされているかどうかを確認します。 sd-cardがマウントされていない場合は、警告ダイアログを表示して、ユーザに再試行または終了を要求します。ユーザーが再試行をクリックすると、アクティビティが再作成されます。ユーザーが終了をクリックすると、アクティビティは終了します。 – Farhan

+0

ここでの問題は、コントロールがif条件(sd-cardがアンマウントされている場合)私はバックグラウンドで非常に多くのものを使用しているので、クラッシュを引き起こします。これは、外部のSDカードにディレクトリを作成するようなものです。 sdカードがないのでクラッシュします。私は再試行するか、またはsdcardがなくても終了するようにしたいと思っています。私はバックグラウンド処理も停止したいと思っています。それは可能ですか? – Farhan

答えて

0

は、私は次のコードは、あなたに少し助けになると思います。あなたはそれが動作しませんスレッドからalertBoxを呼び出す場合:OKを編集

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setMessage("Please try again.").setPositiveButton("OK", dialogClickListener).show(); 
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     switch (which){ 
     case DialogInterface.BUTTON_POSITIVE: 
      //OK button clicked, Add your code here 

      break; 


     } 
    } 
}; 

をクリックするまで待機します。あなたはUIスレッドからalertDialogを呼び出す必要があります
runOnUiThread(new Runnable() { @Override public void run() { } });

+0

待ってません:( – Farhan

+0

どうしたらいいですか?サンプルコードを投稿できますか? – Sandy

関連する問題