android中用AsyncTask解决UI线程阻塞

来源:互联网 发布:java替换字符串 编辑:程序博客网 时间:2024/05/21 18:34
package com.example.mm.helloworld;import android.os.AsyncTask;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.animation.TranslateAnimation;import android.widget.Button;public class MainActivity extends AppCompatActivity {    private  Button button_up = null;    private int jj=30;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        TranslateAnimation animation=new TranslateAnimation(-100,100,0,0);        animation.setDuration(2000);        animation.setRepeatCount(1000);        Button button_down = (Button) findViewById(R.id.button_down);        button_down.setAnimation(animation);        button_up=(Button) findViewById(R.id.button_up);        button_up.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(final View v) {                new DownloadImageTask().execute();            }        });    }    private class DownloadImageTask extends   AsyncTask<String,Void,Integer>    //AsyncTask    {        protected Integer doInBackground(String... urls)  //跟UI无关的耗时操作,写在线程里面        {            try {                Thread.sleep(5000);            }            catch (InterruptedException e)            {                e.printStackTrace();            }            int sum=10;            return  sum;        }        protected  void  onPostExecute(Integer sum)//跟UI组件相关的操作写在post里面        {            button_up.setText(""+sum);        }    }
原创粉丝点击