Android消息机制六---AsyncTask例子
2016-03-03 13:55
405 查看
Android消息机制之六---AsyncTask例子
本博客是对之前的android异步的一个例子;
本博客是对之前的android异步的一个例子;
public class MainActivity extends AppCompatActivity { private Button download = null; private TextView text = null; private ProgressBar progressBar = null; private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { switch (msg.what){ case 0: progressBar.setProgress(msg.arg1); text.setText(msg.arg1 + "%"); break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.download = (Button)this.findViewById(R.id.btn); this.text = (TextView)this.findViewById(R.id.text); this.progressBar = (ProgressBar)this.findViewById(R.id.progress); this.progressBar.setMax(100); this.download.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //利用AsyncTask来进行更新 DownLoadAsync downLoadAsync = new DownLoadAsync(progressBar, text); downLoadAsync.execute(); //利用Handler + Message来更新; // UpdateThread updateThread = new UpdateThread(handler); // updateThread.start(); } }); //测试Looper线程 new LooperThread().start(); } private class DownLoadAsync extends AsyncTask<Void,Integer, Boolean>{ private ProgressBar progressBar = null; private TextView textView = null; public DownLoadAsync(ProgressBar p, TextView t){ this.progressBar = p; this.textView = t; } @Override protected void onPreExecute() { this.textView.setText("0%"); this.progressBar.setProgress(0); super.onPreExecute(); } @Override protected void onPostExecute(Boolean aBoolean) { super.onPostExecute(aBoolean); } @Override protected void onProgressUpdate(Integer... values) { this.progressBar.setProgress(values[0]); this.textView.setText(values[0] + "%"); super.onProgressUpdate(values); } @Override protected Boolean doInBackground(Void... params) { for(int i = 1;i <= 100; i++){ this.publishProgress(i); try{ Thread.sleep(100); }catch (Exception e){ e.printStackTrace(); } } return Boolean.TRUE; } } }
相关文章推荐
- Android的四种启动模式
- Android SQLite框架greenDAO的使用
- Android内存优化七:MAT具体分析内存泄漏实例1
- Android内存优化六:系统中使用堆和栈管理内存的区别
- Android数据持久化技术 — — —文件存储
- cordova5.0+ android 插件开发步骤
- Android消息机制之五---AsyncTask
- Android 日常开发总结的技术经验 60 条
- android——仿网易今日头条等自定义频道listview 或者grideview等item上移到另一个view中
- Android消息机制之四---Looper,Handler,Message例子
- Android Activity 四种启动模式
- android自定义view(一),打造绚丽的验证码
- 关于android如何对cookie的读取!
- Android消息机制之三---Message
- Android ImageView 的scaleType属性详解(一)
- android消息机制之二--Handler
- Android中Navigation Bar遮挡PopupWindow的解决方法
- Android性能优化之AsyncTask
- apk测试工具调研
- Android study week1