Android、AsyncTask、onProgressUpdate 和 onPostExecute 未被调用

标签 android android-asynctask

doInBackground完成它所做的事情之后,onPostExecute不会被调用。如果我尝试发布进度,onProgressUpdate 也不会被调用。

我重新创建了一个 asyncTask,它在后台不执行任何操作,只是记录文本,但两种方法都没有被调用。

这是我的代码

public class MyAsyncTask extends AsyncTask<Object, Integer, Void> {

@Override
protected Void doInBackground(Object... params) {
    Log.d("MyAsyncTask","doInBackground");
    publishProgress(1);
    return null;
}

@Override
protected void onPostExecute(Void result) {
    Log.d("MyAsyncTask","onPostExecute");
    super.onPostExecute(result);
}

@Override
protected void onProgressUpdate(Integer... values) {
    Log.d("MyAsyncTask","onProgressUpdate");
    super.onProgressUpdate(values);
}}

我是这样调用它的

new MyAsyncTask().execute();

最佳答案

在主/UI 线程上执行您的任务:

new MyAsyncTask().execute("Test");

异步任务:

public class MyAsyncTask extends AsyncTask<String, Integer, String> {

    protected void onPreExecute() {
        Log.d("MyAsyncTask","MyAsyncTask Started");
    }

    protected String doInBackground(String... params) {
        Log.d("MyAsyncTask",params[0] + " in background.");
        publishProgress(params[0]);
        return null;
    }

    protected void onProgressUpdate(Integer... values) {
        Log.d("MyAsyncTask","onProgressUpdate - " + values[0]);
    }

    protected void onPostExecute(String result) {
        Log.d("MyAsyncTask","onPostExecute " + result);
    }
}

关于Android、AsyncTask、onProgressUpdate 和 onPostExecute 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17246379/

相关文章:

android - 在 build.gradle 中有条件地定义 resValue

java - 在android中选中复选框时如何计算百分比?

android - 方便的 Kotlin LoggerFactory 简化

java - Android:如何从不同的类文件运行异步任务?

android - 静态类中的异步任务

android - Android 上的 Appium - 报告的屏幕尺寸与实际屏幕尺寸不同

android - 我应该将参数提供给构造函数还是 AsyncTask.execute(params)?

Android AsyncTask 不返回正确的结果

java - 从 Activity 调用时,另一个 AsyncTask 类中的 ProgressDialog 不显示

android - 缩小照片尺寸