Вот фрагмент кода из моего класса, как я вызываю alertDialog. В моем случае, если число равно нулю, асинхронная задача должна завершиться и отобразить диалоговое окно:
if(count == 0){
NumberPlateActivity np = new NumberPlateActivity();
np.dialog(con);
}
А вот в моей основной деятельности метод, который предполагает прерывание асинхронной задачи и вывод диалога:
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()
.
Есть предложения?