AsyncTask 牛刀小试,实现下载进度条更新,ProgressBar
来源:互联网 发布:淘宝工厂店是什么意思 编辑:程序博客网 时间:2024/05/07 17:35
直接上代码,首先布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_handler_to" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingTop="@dimen/activity_vertical_margin"> <TextView android:id="@+id/info_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:id="@+id/send_info_bt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="发送" /> </LinearLayout>
布局文件后,接下来看, activity 的代码 ,原话,直接上代码
package ?;import android.os.AsyncTask;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.TextView;/** * @author song * @date :2017/6/9 * @Description: * */public class HandlerToActivity extends AppCompatActivity { private TextView info; private Button send_info_bt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_handler_to); info = (TextView) findViewById(R.id.info_tv); send_info_bt = (Button) findViewById(R.id.send_info_bt); send_info_bt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new MyTask().execute("开始"); } }); } class MyTask extends AsyncTask<String, Integer, String> { //在后台线程中执行,onPreExecute之后调用,表示执行一个后台任务 @Override protected String doInBackground(String... params) { Log.d("MyTask", "--------doInBackground------" + params); for (int i = 0; i <= 50; i++) { publishProgress(i * 2); try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } } return "success"; } //在UI线程调用,可以在执行任务前做准备工作。比较耗时的操作都可以放在这里 @Override protected void onPreExecute() { super.onPreExecute(); info.setText("正在开始更新..."); } //相当于Handler 处理UI的方式 @Override protected void onPostExecute(String s) { super.onPostExecute(s); info.setText(s); } //相当于Handler 处理UI的方式 @Override protected void onProgressUpdate(Integer... values) { super.onProgressUpdate(values); info.setText("当前进度:" + values[0] + "%"); } // 用户调用取消时,要做的操作 @Override protected void onCancelled() { super.onCancelled(); } }}
完成,拉代码,直接就可以跑。
这是一个简单的代码,其实技术含量还是挺高的
阅读全文
1 0
- AsyncTask 牛刀小试,实现下载进度条更新,ProgressBar
- AsyncTask下载并更新ProgressBar
- Android AsyncTask下载图片和ProgressBar进度条
- android AsyncTask异步下载并更新进度条
- 实现动态更新ProgressBar的水平进度条
- android使用AsyncTask来实现更新进度条
- (androidStudio)AsyncTask+进度条实现网络下载图片
- android AsyncTask下载并更新进度条运用例子
- 关于AsyncTask异步下载图片带有进度条更新
- 异步更新ProgressBar(使用AsyncTask)
- 使用progressbar实现进度条。
- 使用ProgressBar实现进度条
- android:progressbar实现进度条
- ProgressBar进度条的实现
- 使用ProgressBar实现进度条
- 使用ProgressBar实现进度条
- 实现下载图片显示进度条(采用asynctask)
- 基于AsyncTask的带进度条的下载功能Demo实现
- linux计划任务crontab
- 搭建MySQL高可用负载均衡集群
- 百度地图上的标注物太多导致界面卡顿的解决办法
- 解决IIS无响应假死状态
- 如何查看与分析IIS服务器日志?
- AsyncTask 牛刀小试,实现下载进度条更新,ProgressBar
- Git版本控制:Github的使用之 多人协作及参与项目
- 如何从零开始做代码评审
- supervisord suse 11 sp2 install
- 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内。以及两点间的测距功能
- iOS
- Wireshark基本介绍和学习TCP三次握手
- spring之构造函数注入属性值与set方法注入属性值
- wireshark tcp 协议分析