【Android杂谈】AsyncTask的详细使用解析
来源:互联网 发布:软件代理加盟协议 编辑:程序博客网 时间:2024/06/06 11:40
AsyncTask是可以用来做更新UI的,耗时操作可以交给他,这样避免主线程的耗时。
使用须知:
主要在于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(); } }}
1 0
- 【Android杂谈】AsyncTask的详细使用解析
- Android AsyncTask 详细解析
- Android AsyncTask 详细解析
- Android AsyncTask 详细解析
- 【AsyncTask使用】Android AsyncTask 使用完全解析
- android之Futuretask、Timer、AsyncTask的使用及原理解析
- Android开发——AsyncTask的使用以及源码解析
- Android开发----AsyncTask的使用以及源码解析
- AsyncTask详细解析
- Android 的AsyncTask使用
- Android AsyncTask的使用
- Android AsyncTask 的使用
- 使用Android的AsyncTask
- Android AsyncTask 的使用
- Android AsyncTask的使用
- Android AsyncTask的使用
- Android--AsyncTask的使用
- Android-AsyncTask的使用
- 2015年华为面试经历
- JavaScript高级程序设计之基本概念之变量第3.3讲笔记
- 用简单的方法实战演练搭建http服务器(Windows上)------专为http新手
- Scala深入浅出进阶经典 第57讲:Scala中Dependency Injection实战详解
- C/C++ 中的次方运算
- 【Android杂谈】AsyncTask的详细使用解析
- linux之sed用法
- 第107讲:Akka中的Future使用代码实战详解学习笔记
- Scala深入浅出进阶经典 第58讲:Scala中Abstract Types实战详解
- Android 四种基本布局LinearLayout、RelativeLayout、FrameLayout、TableLayout
- java面试题十四 基本类型的默认值
- 运算符 “==”与equals(Object)的比较
- Java web高级编程——Spring MVC
- Scala深入浅出进阶经典 第59讲:Scala中隐式转换初体验实战详解以及隐式转换在Spark中的应用源码解析