【Android杂谈】AsyncTask的详细使用解析
2015-09-25 23:25
501 查看
AsyncTask是可以用来做更新UI的,耗时操作可以交给他,这样避免主线程的耗时。
使用须知:
主要在于execute()方法,AsyncTask<Void,Inetger,Void>, 由此可知,有三个泛型
第一个是调用execute()方法时传入的参数类型和doInBackgound()的参数类型
第二个是更新进度时传递的参数类型,即publishProgress()和onProgressUpdate()的参数类型
第三个是doInBackground()的返回值类型
这样可以完美解决耗时,避免造成不好的用户体验,同时也可以保证在运行中,主线程依然可以找到后天耗时操作的进度。
这一特点让人联想到了进度条,没错,进度条就可以用它来完成。
根据自身的需求三个泛型 不同使用
使用须知:
主要在于execute()方法,AsyncTask<Void,Inetger,Void>, 由此可知,有三个泛型
第一个是调用execute()方法时传入的参数类型和doInBackgound()的参数类型
第二个是更新进度时传递的参数类型,即publishProgress()和onProgressUpdate()的参数类型
第三个是doInBackground()的返回值类型
这样可以完美解决耗时,避免造成不好的用户体验,同时也可以保证在运行中,主线程依然可以找到后天耗时操作的进度。
这一特点让人联想到了进度条,没错,进度条就可以用它来完成。
package yyc.com.mysurface; import android.app.Activity; import android.app.ProgressDialog; import android.os.AsyncTask; import android.os.Bundle; import android.view.View; import android.widget.Button; /** * Created by Administrator on 2015/9/25. */ public class test extends Activity{ Button btn; ProgressDialog pd; MyTask ss=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.test); btn=(Button)findViewById(R.id.te); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ss=new MyTask(); ss.execute(); } }); } class MyTask extends AsyncTask<Void,Void,Void>{ @Override protected void onPreExecute() { super.onPreExecute(); pd=ProgressDialog.show(test.this,"正在加载","请稍后",true); } @Override protected Void doInBackground(Void... params) { new Thread() { public void run() { try{ sleep(5000);//为了效果,在此让它3秒,各位可以将这里线程代码去掉,换成自己所要的网络耗时操作 }catch(InterruptedException e){ e.printStackTrace(); } }}.start(); return null; } @Override protected void onPostExecute(Void aVoid) { super.onPostExecute(aVoid); pd.dismiss(); } } }
根据自身的需求三个泛型 不同使用
相关文章推荐
- Android解决软键盘遮挡Button
- Android 之SharedPreference使用
- android 基础3
- Android —页面下拉刷新(ListView与SwipeRefreshLayout)
- Android 基础2
- Android 解析包时候出现错误
- MAC OS X 10.10编译android5.0源码 步骤 以及 遇到的问题
- Android 基础1
- Android结构分析Android智能指针(两)
- Android使用SpannableString实现文本框里插入表情
- Android中MediaButtonReceiver广播监听器的机制分析
- Android平台一日游
- [置顶] 【android】聊天界面的制作-简易版实现
- android 图片的加载保存 与 二级缓存
- [转] Android 命名规范 (提高代码可以读性)
- TouchEvent、dispatchTouch、onInterceptTouchEvent之间的关系概述
- Android 图片缓冲的管理-内存缓存
- android HAL接口的编码小结
- Android开发学习解决程序运行就出错的一个问题
- android 中的 ContentObserver (一)