Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android异步任务';更新不起作用_Java_Android_Android Asynctask_Progress Bar - Fatal编程技术网

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;
    }