- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经多次使用 AsyncTask
- 但我遇到了一个看似简单的问题却让我感到困惑。问题是这样的:
Is
publishProgress(Progress... values)
supposed to return immediately? In other words, is this method asynchronous?
我正在尝试判断下面的代码是否正确
公共(public)类 MyAsyncTask {
@Override
protected void doInBackground(String... params) {
while (mRunning) {
// Call publishProgress
this.publishProgress(makeHttpRequest());
// Sleep for 3 seconds
synchronized (lock) {
try {
lock.wait(3 * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
return null;
}
private HttpResponse makeHttpRequest() {
HttpResponse ajaxResponse = null;
Throwable throwable = null;
try {
ajaxResponse = mHttpClient.execute(mHttpGet);
} catch (ClientProtocolException e) {
// Handle exception
} catch (IOException e) {
// Handle exception
} catch (Exception e) {
// Handle exception
}
return ajaxResponse;
}
@Override
protected void onProgressUpdate(HttpResponse... values) {
// Do something with the response
}
最佳答案
你在这里问两件不同的事情:
publishProgress()
确实会立即返回,它只是向某个 Handler
publishProgress()
的行为方式无关,您的代码将始终执行 HTTP 请求,等待响应,然后 hibernate 三秒钟。只是像 publishProgress(makeHttpRequest())
这样的内联方法调用并不意味着 makeHttpRequest()
没有在调用它的地方执行,在你的 doInBackground()
方法。关于java - AsyncTask 的 publishProgress 方法是异步的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10209497/
当我尝试下载文件时,应用程序崩溃。 问题是当我刷新进度条时。我使用asynctask.The错误是这样的: while ((read = is.read(buffer, 0, 1024)) > 0)
我写了一个AsyncTask: public class AudioTransition extends AsyncTask { private int goalID; priv
这就是我遇到的问题:每当 publishProgress(sentCount);在应用程序崩溃时被调用。我环顾四周,仍然不知道这是什么原因。任何帮助是极大的赞赏!谢谢 class MySmsTask
我正在尝试更新进度对话框以增加 1-100% 之类的值。但是,没有任何东西会增加。它总是只显示 0。尽管如此,我能够在我的 Log Cat 中看到打印出的数字,并且一切都在 100 之后结束。 有人看
我有一个 AsyncTask,它使用轮询队列来查看是否有新对象到达。当它检测到新对象时,我让它以字符串形式收集信息,然后发布进度(信息)。在 onProgressUpdate 中,它将字符串添加到列表
我正在尝试在进度对话框中显示 3 条不同的消息。 在 onPreExecute 中,我创建对话框并设置第一条消息。 在 doInBackground 中,我调用 publishProgres("sen
假设我有一个非常简单的长时间运行的任务作为 AsyncTaskLoader: public class DumbLoader extends AsyncTaskLoader{ private s
我有以下代码在异步任务中运行客户端套接字连接: @Override protected Boolean doInBackground(Void... params) { //This runs on
我已经多次使用 AsyncTask - 但我遇到了一个看似简单的问题却让我感到困惑。问题是这样的: Is publishProgress(Progress... values) supposed to
我的实际任务正在完成,但是即使我调用进度对话框,我的进度条的进度状态也没有任何增加..?有人能告诉我哪里做错了吗? class A extends AsyncTask
我试图在后台进程中发布两种不同的进度。我试图有时发布一个字符串,另一次发布一个整数。我也通过重载处理 onProgressUpdate 中的两种参数。但是当我声明我的 AsyncTask 类时,我有参
由于垃圾收集器被调用了很多次,我一直在寻找一种在循环语句中 x 秒后调用 publishProgress() 的方法。 这是我的: protected Void doInBackground(Void
我已经查看过有关此问题的所有类似线程,但找不到解决我的问题的方法 我的 AsynkTask 应该从保管箱下载文件并在通知进度条中显示进度。 doInBackground 下载文件,但方法 publis
我正在尝试实现简单的内部数据存储代码。我想在其中显示一些后台进程的 ProgressDialog,在调用 publishProgress() 时该进程将递增 5。但它给我如下错误, The metho
我已经阅读了这里几乎所有关于使用 publishProgress 在进度对话框上设置新消息的帖子,但我就是无法让它工作。 代码: public class LoginToApi extends Asy
我解析 XML 数据并将其放入一个对象中。这需要相当长的时间,我决定使用 AsyncTask 在后台运行它。我的代码几乎与这个例子完全一样: How to get XML using AsyncTas
我的 AsyncTask 看起来像: private class MyTask extends AsyncTask> { private volatile UserData userData;
我在这上面花了太多时间,到目前为止,我一直没有使用 publishProgress() 功能……幸运的是,onPostExecute 也在 UI 线程中运行,所以我不得不为我想要的每个图像创建 N 个
Developer.Android 说 PublishProgress 驻留在 UI 线程中,因此我应该能够从 Publish Progress 更改 UI。 但是,我得到这个错误: android.
我是一名优秀的程序员,十分优秀!