Android中AsyncTask的简单入手方式
2016-01-05 18:35
429 查看
AsyncTask
方法介绍/** * 参数一: 当你的子线程启动时 需要什么资源? 参数二: 当你的子线程运行时 需要往UI线程 传递什么类型的参数 参数三: 当你的子线程运行完毕, 需要给UI线程返回一个什么类型的结果 */ AsyncTask<Void, String, Void> task = new AsyncTask<Void, String, Void>(){ /** * UI线程方法 * task 子线程启动之前 做的准备操作 */ @Override protected void onPreExecute() { // TODO Auto-generated method stub super.onPreExecute(); but.setTextColor(Color.parseColor("#626262")); but.setClickable(false); } /** * doInBackground(Void... params) * 子线程方法 用来执行耗时操作 * params 当你的task启动时 传递的参数 * return 当子线程死亡 也就是这个方法执行完毕 要返回给UI线程的参数 */ @Override protected Void doInBackground(Void... params) { for (int i = 60; i < 0; i--) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } //通知UI线程 publishProgress(i+"s"); } //当子线程执行完毕 返回到UI线程 return null; } /** * Ui线程中的方法, 可以直接更改UI线程 * 但是它如果想要被调用 必须在子线程中调用publishProgress()方法; * 一般用于展示子线程任务执行的百分比 , 比如下载数据 */ @Override protected void onProgressUpdate(String... values) { // TODO Auto-generated method stub super.onProgressUpdate(values); but.setText(values[0]); } /** * UI线程中的方法, 可以直接更改UI线程 * 当你的子线程死亡 也就是当doInBackground方法 return * result: doInBackground方法return的参数 */ @Override protected void onPostExecute(Void result) { // TODO Auto-generated method stub super.onPostExecute(result); but.setClickable(true); but.setTextColor(Color.parseColor("#000000")); but.setText("获取验证"); } }; //启动 task.execute();
取消一个操作
方法如下 task.cancel(true); 一般用于Activity被销毁时 ;
相关文章推荐
- Android 系统应用调用,intent 的使用方法总结
- Android高效显示图片详解(三)
- Android高效显示图片详解(二)
- Android studio jni编写步骤,流程
- Android高效显示图片详解(一)
- android 设置头像并保存到本地
- Android 9-patch 九图的制作与使用
- Android TextView前加图标垂直居中第一行(仿大众点评购买须知/提示语)
- Android 应用程序升级到 5.0 需要注意的问题
- android中的文件操作详解以及内部存储和外部存储
- Android 使用动态加载框架DL进行插件化开发
- 细说:AndroidStudio插件
- 在Android中 使用 java.net.URI 与 android.net.Uri 的区别
- android的TextView展示带格式文本、首行缩进、引入自定义字体
- Android5.0 与 4.x的不同
- AndroidStudio多渠道打包
- android按键事件和触屏事件(一)-几个重要方法的传递顺序
- 获取WiFi MAC地址总结
- 自定义控件Android圆环进度条
- 一套停车场管理软件附带源代码 J2EE服务端+android客户