Android退出doInBackgroundThread而不离开activity



这一切都是因为我想在后台线程中显示toast消息。(Toast消息崩溃应用程序时,试图加载他们没有告诉他们加载UI线程)现在我意识到我想显示Toast消息和关闭后台线程,这是一种错误处理,让用户知道错误。

后台线程中的所需条件将用户带到一个新活动并完成当前活动。作品。

现在我注意到,我不知道另一种方式来结束后台线程和显示toast消息在同一活动?

我如何结束后台线程从doInBackground?

您需要为任务执行cancel()方法。然后,当它被取消而不是运行onPostExecute()时,它将调用onCancelled()。

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;
        }
    }

相关内容

  • 没有找到相关文章

最新更新