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



  • 相关阅读:
    HTTP/HLS/RTMP超级负载测试工具(转)
    Jmeter监控Linux服务器性能
    装饰器做缓存
    内置装饰器
    Python装饰器 计时器记录方法执行性能
    【Python】装饰器实现日志记录
    Java对关于两个地点的根据经纬度算出后排序
    JS获得当前位置信息
    百度地图插件开发使用三 及jquery function(a.b)排序等
    css用clearfix清除浮动
  • 原文地址:https://www.cnblogs.com/java20130722/p/3207270.html
Copyright © 2011-2022 走看看