android 多线程(二)

1. 使用 AsyncTask 实现进度条

   

package com.test.network;

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;

public class AsyncActivity extends AppCompatActivity {

    private ProgressBar progressBar;

    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_async);

        progressBar = (ProgressBar) findViewById(R.id.progressBar);
        textView = (TextView) findViewById(R.id.textView);
        new MyTask().execute();
    }

    class MyTask extends AsyncTask<String, Integer, String> {

        protected void onPreExecute() {
            progressBar.setVisibility(View.VISIBLE);
        }

        //执行耗时操作
        @Override
        protected String doInBackground(String... params) {
            for (int i = 1; i <= 100; i++) {
                try {
                    Thread.sleep(30);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                publishProgress(i);
            }
            return "success";
        }

        protected void onProgressUpdate(Integer... values) {
            progressBar.setProgress(values[0]);
        }

        protected void onPostExecute(String result) {
            textView.setText(result);
            progressBar.setVisibility(View.INVISIBLE);

        }
    }
}
原文地址:https://www.cnblogs.com/newlangwen/p/5390030.html