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



  • 相关阅读:
    zookeeper记录2(选举模式和ZooKeeper的集群安装)
    端口复用技术简单了解;重用端口;socket复用端口
    java线程池如何合理配置核心线程数?(转)
    数据库锁机制(转)
    mysql左连接锁表_不得不会的mysql锁(转)
    POI: calculated end index (4361) is out of allowable range (4339..4358)
    jdbcTemplate事务管理
    springboot 访问静态资源
    springboot集成持久化框架
    第六章 FreeBSD之配置日期和时间
  • 原文地址:https://www.cnblogs.com/java20130722/p/3207270.html
Copyright © 2011-2022 走看看