zoukankan      html  css  js  c++  java
  • androidAsynTask

    AsynTask

    AsyncTask的特点是任务在主线程之外运行,而回调方法是在主线程中执行, 这就有效地避免了使用Handler带来的麻烦。AsyncTask是使用java.util.concurrent 框架来管理线程以及任务的执行的,concurrent框架是一个非常成熟,高效的框架,经过了严格的测试

    当应用中会有网络请求,并且需要把结果信息更新到UI上, 那么可以选择AsynTask.


    下面举个简单实例,说明AsynTask 里面的每个方法的使用,和具体的调用过程;

    package com.hualu.asyntaskexample;
    
    import java.net.URL;
    
    import android.os.AsyncTask;
    
    public class DemoAsynTask extends AsyncTask<URL, Integer, String> {
    
    	@Override
    	protected String doInBackground(URL... params) {
    		System.out.println(params[0].getPath()); //传来的URL
    		publishProgress(1) ;
    		return null;
    	}
    	
    	@Override
    	protected void onProgressUpdate(Integer... values) {
    		super.onProgressUpdate(values);
    		
    	}
    	
    	@Override
    	protected void onPostExecute(String result) {
    		super.onPostExecute(result);
    		
    	}
    
    }
    

    详解:

     AsyncTask<URL, Integer, String>

    泛型中的三个类型:

           第一个URL:是doInBackground()方法中的参数(可变参数)

          第二个Integer:是在调用publishProcess(int)时,参数传入到onProcessUpdate()里面

          第三个String:是doInBackground()方法返回值,这个返回值会当做参数传递给onPostExecute()方法


           doInBackground() 方法在上述三个方法中是第一个调用的,要想程序调用onProcessUpdate()方法,需要调用publishProcess()方法,doInBackground()返回后,onPostExecute()方法才会执行。


    一般网络操作在doInBackground()方法中实现。


    运行AsynTask:

    new AsynTask().execute(new URL("http://blog.csdn.net/luhuajcdd/article/details/8791105")) ;



  • 相关阅读:
    材料用词积累
    SqlServer 数据库/数据表 拆分(分布式)【转】
    SqlServer 数据库读写分离【转】
    (整理)在REHL6.5上部署ASP.NET MVC
    (整理)MySQL_REHL6.5 安装MySQL5.5
    (转)查看SQLServer最耗资源时间的SQL语句
    (转)SQLServer查询数据库各种历史记录
    (转)SqlServer2008 数据库同步:发布、订阅
    (整理)SQL Server 2008 CDC 功能使用
    (整理)EF分页的实现
  • 原文地址:https://www.cnblogs.com/java20130722/p/3207270.html
Copyright © 2011-2022 走看看