내 클래스의 코드 스 니펫입니다. alertDialog를 호출하는 방법은 다음과 같습니다. 내 경우에는 카운트는 AsyncTask를 종료하고 디스플레이 대화합니다 0 인 경우 :alertDialog를 표시하는 클래스의 주요 활동에서 asynctask를 방해 할 수 있습니까?
if(count == 0){
NumberPlateActivity np = new NumberPlateActivity();
np.dialog(con);
}
을 그리고 여기에 AsyncTask를 중단하고 대화 상자가 나타납니다하기 위해 가정 내 주요 활동으로하는 방법입니다 :
public void dialog(final Context context){
new Thread() { public void run() {
NumberPlateActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
try{
ImageProc stop = new ImageProc();// ImageProc - asynctask
stop.cancel(true);
} catch (Exception e) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
AlertDialog alert = builder.create();
alert.show();
builder.setMessage("Plate not found. Try again!")
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent intent = new Intent();
intent.setClass(context.getApplicationContext(), ANPR.class);
context.startActivity(intent);
}
});
}
}});
}
}.start();
}
을
코드를 실행 한 후에이 오류가 발생합니다. Looper.prepare()
을 호출하지 않은 스레드 내부에서 처리기를 만들 수 없습니다. 제안 사항이 있으십니까?