java - 当AsyncTask准备好时通知Activity?

标签 java android android-activity android-asynctask

我有一个在 onclick 事件中对 Login 类进行分类的 Activity 。我的 Login 类基本上执行 http post 并解析来自服务器的 XML 响应。这发生在 Login 类构造函数的线程内。

我的问题出在这部分:

Login login = new TvsLogin(emailEditText.getText().toString(), passwordEditText.getText().toString());
if(login.isErrorOccurd()){

}
else{

}

基本上,当登录的构造函数发挥作用时,我的其余代码就会被执行,并且 login.isErrorOccurd() 显示为 false,并且即使出现错误,我的 else block 也会被执行。

有什么建议我应该如何解决这个问题吗?登录可能需要一些时间,因此在线程中进行登录是有意义的,但它并没有按照我预期的方式进行。

编辑:

就像 Pixie 所说,我必须使用 AsyncTask。不过,我仍然想在我的 Activity 中进行报告。我该怎么做呢? (这是个好主意,还是我应该在 Activity 的 onPostExecute() 方法中执行此操作?)

最佳答案

这种行为并没有什么奇怪的。调用 login.isErrorOccurd() 方法时,不会在辅助线程中检查登录。您可以使用 Activity.runOnUiThread() 方法通知您的 Activity 有关登录检查结果的信息,或者您可以使用 AsyncTask 类让它为您执行此操作。但无论如何,错误检查将在代码的其他部分进行。

关于java - 当AsyncTask准备好时通知Activity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5721182/

相关文章:

java - Web 应用程序中仪表板的架构(基于 Java)

java - 在 RecyclerView 中滚动后 EditText 丢失内容

java - Spring Boot中自动将HashSet转换为串联字符串

android - 构建Android应用程序时出错

android - 崩溃堆栈跟踪丢失

android - 如何设置ListView项目高度

Java - SimpleDateFormat 格式错误

java - 总重量。如何在一个事件中处理两个相似的 Action ?

java - 如何让任务一个接一个地执行?

java - 如何调用属于某个 Activity 的 fragment 的方法