は、私は次のコードは、あなたに少し助けになると思います。あなたはそれが動作しませんスレッドから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() { } });
多分、いくつかのコードがあなたの問題を理解するのに役立つでしょう、私はそのアーキテクチャを理解できません。間違ったことをやっているようですが、コードが表示されていないので、何が間違っているのかわかりません。 – Egor
私のアプリケーションは、SDカードに保存されているビデオのリストを取得します。 onCreateメソッドを起動した直後に、私が作成した別の関数を呼び出して、sd-cardがマウントされているかどうかを確認します。 sd-cardがマウントされていない場合は、警告ダイアログを表示して、ユーザに再試行または終了を要求します。ユーザーが再試行をクリックすると、アクティビティが再作成されます。ユーザーが終了をクリックすると、アクティビティは終了します。 – Farhan
ここでの問題は、コントロールがif条件(sd-cardがアンマウントされている場合)私はバックグラウンドで非常に多くのものを使用しているので、クラッシュを引き起こします。これは、外部のSDカードにディレクトリを作成するようなものです。 sdカードがないのでクラッシュします。私は再試行するか、またはsdcardがなくても終了するようにしたいと思っています。私はバックグラウンド処理も停止したいと思っています。それは可能ですか? – Farhan