RD Если я могу предложить довольно извращенный метод обработки ошибок в фоновом потоке. Попробуйте обернуть вызовы в фоновом потоке в try catch и вернуть объект с состоянием. Поэтому, если вы хотите, чтобы фоновый поток возвращал строку, создайте класс BoolString.
//a utility class to signal success or failure, return an error message, and return a useful String value
//see Try Out in C#
public final class BoolString {
public final boolean success;
public final String err;
public final String value;
public BoolString(boolean success, String err, String value){
this.success= success;
this.err= err;
this.value= value;
}
}
Использование:
public BoolString tryEncrypt(String inString, String password) {
try {
String value= encrypt(inString, password);
return new BoolString(true,"",value);
}
catch (GeneralSecurityException e){
return new BoolString(false,e.getMessage(),"");
}
}
protected void onPostExecute(BoolString result){
progress.dismiss();
if (result.success){
result.value;
}
else {
result.err;
}
}