AsynckTask的简单使用(更新进度条)
2016-09-16 16:24
141 查看
package com.example.myasynctask; import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android.os.SystemClock; import android.util.Log; import android.widget.ProgressBar; public class ProgressTest extends Activity{ private ProgressBar pb; private MyAsynctask myAsyncTask; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.progress_test); pb = (ProgressBar) findViewById(R.id.pb); myAsyncTask = new MyAsynctask();//asyncTask必须在UI线程中创建 myAsyncTask.execute();//必须在UI线程中调用execute()方法,而且中能调用一次,多次调用会引发异常 } class MyAsynctask extends AsyncTask<Void, Integer, Void>{ @Override protected Void doInBackground(Void... params) { for(int i = 0 ; i < 100 ; i++){ if(isCancelled()){ return null; } SystemClock.sleep(500); publishProgress(i);//当调用此方法时,系统才会调用onProgressUpdate方法,参数即是onProgressUpdate的参数 } return null; } @Override protected void onProgressUpdate(Integer... values) { super.onProgressUpdate(values); if(isCancelled()){ return; } Log.i("TAG",""+values[0]); pb.setProgress(values[0]); } } @Override protected void onPause() { super.onPause(); //当activity不可见时将asyncTask标记为取消状态 if(myAsyncTask != null && myAsyncTask.getStatus() == MyAsynctask.St 4000 atus.RUNNING){ myAsyncTask.cancel(true); } } }
相关文章推荐
- AutoCode (vs插件)自动生成代码插件 下载及使用教程(C#版)( 更新简单自定义模板教程)
- Silverlight 3 中使用WCF上传文件 (简单进度条展示)
- Notification使用详解之二:可更新进度的通知
- Android Notification 使用详解之三:通过服务更新进度通知&在Activity中监听服务进度
- Android Notification 使用详解之二:可更新进度的通知
- 使用Nant来简单更新Reference
- 纯手工打造漂亮的垂直时间轴,使用最简单的HTML+CSS+JQUERY完成100个版本更新记录的华丽转身!
- Notification使用详解之二:可更新进度的通知
- 关于Handler的使用,如何使用Handler更新进度条
- 纯手工打造漂亮的垂直时间轴,使用最简单的HTML+CSS+JQUERY完成100个版本更新记录的华丽转身!
- Silverlight 3 中使用WCF上传文件 (简单进度条展示)
- Notification使用详解之三:通过服务更新进度通知&在Activity中监听服务进度
- Notification使用详解之二:可更新进度的通知
- Notification使用详解之三:通过服务更新进度通知&在Activity中监听服务进度
- android使用AsyncTask来实现更新进度条
- 触发器的简单使用(使用游标多行更新)
- 在Xcode以及Interface Builder下简单使用Cocoa (更新版)
- 关于Thread -----使用线程更新进度组件
- [libcurl]_[初级]_[使用libcurl库做简单软件更新解决方案]
- 纯手工打造漂亮的垂直时间轴,使用最简单的HTML+CSS+JQUERY完成100个版本更新记录...