[android]_[Async异步任务使用]
16lz
2021-01-26
android提供了一套专门用于异步处理的类。即:AynsTask类。使用这个类可以为耗时程序开辟一个新线程进行处理,处理完时返回。
asysTask类主要用到的几个内部回调函数有:
doInBackGround()
onPreExecute()
onPostExecute()
onProgressUpdate()
执行顺序如下图:
public class AnsyTestActivity extends Activity { /** Called when the activity is first created. */ TextView text =null; Button button=null; String str=null; AnsyTry anys=null; double result=0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); text=(TextView) findViewById(R.id.text); button=(Button) findViewById(R.id.button); str="wei"; button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub anys=new AnsyTry(text); anys.execute(str); } }); } class AnsyTry extends AsyncTask<String, TextView, Double>{ TextView te=null; public AnsyTry(TextView te) { super(); this.te = te; } @Override protected Double doInBackground(String... params) { // TODO Auto-generated method stub double dou=0; if(params[0].equals("wei")){ System.out.println(Thread.currentThread().getName()+" recive wei"); dou=100; } publishProgress(te); return dou; } @Override protected void onPostExecute(Double result) { // TODO Auto-generated method stub super.onPostExecute(result); System.out.println("postExecute---double---"+result); } @Override protected void onPreExecute() { // TODO Auto-generated method stub\ System.out.println("pretExecute------"); super.onPreExecute(); } @Override protected void onProgressUpdate(TextView... values) { // TODO Auto-generated method stub values[0].setText(values[0].getText()+"1"); super.onProgressUpdate(values); } }}
更多相关文章
- Android(安卓)Service那些不得不说的事-之二(Bound Service的实现
- Binder 和 AIDL
- Android学习笔记:通过Android之Service实现文件断点续传下载
- Android(安卓)异步任务 设置 超时使用handler更新通知功能
- [Android]网络资源下载时断点续传的实现
- Android(安卓)ANR问题定位
- android 下载图片到本地 sdcard
- android之AIDL跨进程通信详解 (四)AIDL中RemoteCallbackList的使
- Android异步更新UI的方式之使用Handler消息传递机制