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")) ;



  • 相关阅读:
    推荐几款Silverlight Tools【转载】
    Emit Vs CodeDom
    Silverlight 中实现Service同步调用
    一个配置文件的Mapping
    Silverlight:获取ContentTemplate中的命名控件
    关于计划
    巧用异步委托解决异步并发问题
    我是如何学习NodeJs的 – 笔记1
    应用HttpHandler, Json, JQuery, ASP.Net UserControl等技术处理 Ajax 的解决方案
    关于程序员的那些事一个五年程序员的总结
  • 原文地址:https://www.cnblogs.com/java20130722/p/3207270.html
Copyright © 2011-2022 走看看