Java Android异步任务';更新不起作用
我在一个类中有一个Java Android异步任务';更新不起作用,java,android,android-asynctask,progress-bar,Java,Android,Android Asynctask,Progress Bar,我在一个类中有一个AsyncTask。我希望它在执行时显示进度。但它并没有打印日志 private void registerBackground() { new AsyncTask<Void, Integer, String>() { @Override protected String doInBackground(Void... params) { Log.v("TAGGG", "IN doInBackgroun
AsyncTask
。我希望它在执行时显示进度。但它并没有打印日志
private void registerBackground() {
new AsyncTask<Void, Integer, String>() {
@Override
protected String doInBackground(Void... params) {
Log.v("TAGGG", "IN doInBackground");
msg = "Error: ";
return msg;
}
@Override
protected void onProgressUpdate(Integer... progress) {
super.onProgressUpdate(progress);
Log.v("TAGGG", "Progress: " + progress[0] + "%");
}
@Override
protected void onPostExecute(String msg)
{
Log.v("TAGGG", msg);
}
}.execute();
}
private void registerBackground(){
新建异步任务(){
@凌驾
受保护字符串doInBackground(无效…参数){
Log.v(“TAGGG”,“IN-doInBackground”);
msg=“错误:”;
返回味精;
}
@凌驾
受保护的void onProgressUpdate(整数…进度){
super.onProgressUpdate(进度);
Log.v(“TAGGG”,“Progress:+Progress[0]+“%”);
}
@凌驾
受保护的void onPostExecute(字符串msg)
{
Log.v(“TAGGG”,msg);
}
}.execute();
}
您必须使用publishProgress()方法:
可以从doInBackground(Params…)调用此方法来发布
在后台计算仍在运行时更新UI线程
跑步对此方法的每次调用都将触发
UI线程上的onProgressUpdate(进度…)。
如果任务已完成,将调用onProgressUpdate(Progress…)注释
取消了
@覆盖
受保护字符串doInBackground(无效…参数){
Log.v(“TAGGG”,“IN-doInBackground”);
msg=“错误:”;
int i=0;
while(为什么while
code?为什么sleep
?会不会让它变慢?@micro.pravi异步任务的目标是模拟一个长线程(下载数据、解析一个大文件)并向用户显示进度。睡眠不是指生产代码!
@Override
protected String doInBackground(Void... params) {
Log.v("TAGGG", "IN doInBackground");
msg = "Error: ";
int i = 0;
while (i <= 50) {
try {
Thread.sleep(50);
publishProgress(i);
i++;
}
catch (Exception e) {
Log.i(TAGGG, e.getMessage());
}
}
return msg;
}