onProgressUpdate 未运行
Posted
技术标签:
【中文标题】onProgressUpdate 未运行【英文标题】:onProgressUpdate is not running 【发布时间】:2018-09-20 04:03:28 【问题描述】:我正在使用 Retrofit 从 api 接收 json 数据,并且运行良好,但将来我想显示一个进度条。我决定实现 onProgressUpdate 以检查是否调用了此方法,但是在检查 Logcat 选项卡时,它不起作用。也就是说,该方法没有运行。 AsyncTask 类中的所有其他方法都在工作。我为每种方法都有一个 Toast,所有这些都运行。
public class MindicadorTask extends AsyncTask<Void, Void, Void>
private String TAG = MindicadorTask.class.getSimpleName();
@Override
protected void onPreExecute()
super.onPreExecute();
Toast.makeText(MainActivity.this, "JSON Downloading", Toast.LENGTH_SHORT).show();
@Override
protected Void doInBackground(Void... voids)
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(IMindicador.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
IMindicador iMindicador = retrofit.create(IMindicador.class);
Call<Mindicador> call = iMindicador.getAPI();
mMindicador = new Mindicador();
try
mMindicador = call.execute().body();
catch (IOException e)
Log.e(TAG, "" + e.getMessage());
return null;
@Override
protected void onProgressUpdate(Void... values)
super.onProgressUpdate(values);
Log.e(TAG, "onProgressUpdate was called");
@Override
protected void onPostExecute(Void aVoid)
super.onPostExecute(aVoid);
Toast.makeText(MainActivity.this, "JSON Call was sucessfull", Toast.LENGTH_SHORT).show();
【问题讨论】:
调用 publishProgress() 【参考方案1】:你必须传递一些值,而不是 Void。例如,尝试使用 int。随着 int 的迭代,它调用 onProgressUpdate()。
【讨论】:
【参考方案2】:指定要发送到 onProgressUpdate 方法的类型数据。也可以在触发 onProgressUpdate 方法调用的 doInBackground 方法中调用 publishProgress 方法。
【讨论】:
以上是关于onProgressUpdate 未运行的主要内容,如果未能解决你的问题,请参考以下文章
Android,AsyncTask 不调用 onProgressUpdate 和 onPostExecute
onProgressUpdate() 中的 NullPointerException
在从 Internet 下载数据期间,在 AsyncTask 的 onProgressUpdate 中显示确定的 ProgressBar
如何更新所有片段? onProgressUpdate 不更新所有片段
如何使用 Runnable 回调替换 AsyncTask onProgressUpdate()
AsyncTask doinbackground onProgressUpdate onCancelled onPostExecute的基本使用