`
yunlonglove
  • 浏览: 242728 次
社区版块
存档分类
最新评论

异步任务的应用

 
阅读更多

最近在看异步问题,异步过程中最重要的方法是AsyncTask<Void,Void,Void>类这个类有三个类型,里面可以为其他的类如String等这里就以Void类为例:

第一个VoidAsyncTask类中复写方法doInBackground的参数类型,这个参数一般是数组,

第二个Void类型是onProgressUpdate的参数类型,一般也是数组,

第三个Void类型是doInBackground返回值类型也是最后执行的onPostExcute参数类型。

下面是自己做的有关简单异步应用:

首先是Main函数:

package com.zzy.demo1;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.ProgressBar;

import android.widget.TextView;

public class Demo1Activity extends Activity {

/** Called when the activity is first created. */

private TextView textView=null;

private Button button=null;

private ProgressBar progressBar=null;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

this.textView=(TextView)findViewById(R.id.text);

this.button=(Button)findViewById(R.id.button);

this.progressBar=(ProgressBar)findViewById(R.id.gress1);

this.button.setOnClickListener(new OnClickListener()

{

@Override

public void onClick(View v)

{

// TODO Auto-generated method stub

//设置对象并将textViewprogressBar 传递过去

asynctask task=new asynctask(textView, progressBar);

//执行execute方法

task.execute(1000);

}

});

}

}

然后是异步操作的设置:

package com.zzy.demo1;

import android.R.integer;

import android.os.AsyncTask;

import android.widget.ProgressBar;

import android.widget.TextView;

publicclass asynctask extends AsyncTask<Integer, Integer, String>

{

//这里会首先执行onPreExcute方法

//然后执行doInBackground方法

private TextView textView=null;

private ProgressBar progressBar=null;

public asynctask(TextView textView,ProgressBar progressBar){

this.textView=textView;

this.progressBar=progressBar;

}

@Override

//后台运行不会对当前UI产生影响

protected String doInBackground(Integer... params)

{

// TODO Auto-generated method stub

for(int i=0;i<100;i+=10)

{

network.operator(i);

onProgressUpdate(i);

}

returnnull;

}

//最后运行这个函数

protectedvoid onPostExecute(String result)

{

textView.setText("GAME OVER");

}

//传递过来首先运行这个函数

protectedvoid onPreExecute()

{

textView.setText("GAME BEGIN");

}

//设置进度条

protectedvoid onProgressUpdate(Integer... params)

{

progressBar.setProgress(params[0]);

}

}

最后是执行线程部分操作的代码:

package com.zzy.demo1;

import android.R.integer;

publicclass network extends Thread

{

publicstaticvoid operator(int i)

{

try

{

System.out.println("这是第"+i+"次休眠");

Thread.sleep(2000);

} catch (InterruptedException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

总体来说 不是多难只是要理解他的操作过程以及函数的实现。

分享到:
评论

相关推荐

    Django异步任务线程池实现原理

    Django作为Python语言开发的一个高级Web框架,支持异步任务执行的能力,尤其在处理大规模数据库操作时,能够通过异步处理提升系统性能。而线程池技术,则是实现高效异步任务处理的重要手段之一。Django异步任务...

    android 音乐播放器 异步任务

    在Android平台上开发一款音乐播放器应用,异步任务(AsyncTask)是不可或缺的组件,它主要用于执行后台操作,以避免阻塞主线程并提供流畅的用户体验。以下将详细阐述Android音乐播放器应用中异步任务的运用及其相关...

    springboot异步任务案例

    在Spring Boot框架中,异步任务处理是一种常见需求,它能提高应用的性能和响应速度。Spring Boot提供了简单易用的API和注解来支持异步任务的实现,特别是通过`@Async`注解和定时任务`@Scheduled`。下面我们将深入...

    异步任务下载图片

    综上,"异步任务下载图片"涵盖了Android中的多线程处理、网络通信、UI更新、错误处理以及资源管理等多个知识点,对于开发高效、稳定的Android应用具有重要意义。开发者需要理解并熟练掌握这些技能,才能编写出流畅且...

    Ansync Test 异步任务带有 详细注释

    在IT行业中,异步任务处理是一项关键的技术,它在提高应用程序性能、优化资源利用和提升用户体验方面发挥着重要作用。在“Ansync Test 异步任务带有详细注释”这个项目中,我们可以深入学习如何实现和管理异步操作,...

    实现浏览器访问基于workman的异步任务

    在IT行业中,异步任务处理是一项重要的技术,它允许应用程序在执行耗时操作时不会阻塞用户界面,提高系统的响应速度和效率。Workerman是一款开源的PHP常驻内存型的高性能、高并发的PHP框架,它特别适用于开发TCP、...

    异步任务的Demo

    `Params`代表异步任务执行时需要输入的参数类型,`Progress`表示后台任务执行过程中的进度类型,而`Result`则是任务执行完成后返回的结果类型。 `AsyncTask`包含四个关键方法: 1. `onPreExecute()`:在执行后台...

    Android异步任务完整实例

    下面将详细解释Android异步任务的概念、工作原理以及如何在实际项目中应用。 一、Android异步任务概述 Android系统为了解决在主线程(UI线程)中执行耗时操作导致的应用程序无响应(ANR)问题,引入了异步任务。...

    yii2 console 集成swoole 执行异步任务,例如注册邮件,发送短信

    在Web开发中,Yii2 Console组件常...这个过程涉及到Yii2 Console命令的创建、Swoole服务器的配置、Swoole与Yii2的结合以及异步任务的处理逻辑。理解并掌握这些知识点,将有助于你构建高效、稳定的异步任务处理系统。

    异步任务网络下载图片一

    在Android开发中,异步任务(AsyncTask)是一种常见的处理耗时操作的方式,尤其是在网络下载图片这样的场景下。异步任务允许我们在线程后台执行任务,同时在主线程更新UI,确保用户界面的流畅性。以下是对这个主题的...

    python基于celery实现异步任务周期任务定时任务

    1. 用户任务应用(app):这是定义任务逻辑的地方。 2. 代理中间件(broker):负责接收任务消息,并将它们分配给工作节点。官方推荐使用的代理是Redis和RabbitMQ。 3. 后端结果存储(backend):用于存储任务执行的...

    异步任务类下载

    标题“异步任务类下载”指的是利用AsyncTask来实现从服务器端下载图片的功能,以达到在应用中展示图文并茂的效果。下面将详细介绍AsyncTask的工作原理以及如何使用它来下载图片。 AsyncTask是一个轻量级的框架,...

    dotnet-AspNetCore项目中非常轻量的异步任务管理模块

    通过对这个模块的深入理解和使用,开发者可以更好地管理和优化Asp.Net Core应用中的异步任务,提高系统的响应速度和可靠性。同时,它作为一个轻量级的解决方案,也适合小型项目或者对性能有较高要求的场景。

    android异步任务框架源码

    查看此类的源码,可以帮助我们理解开发者如何集成异步任务到应用中,包括他们如何传递参数、更新UI以及处理可能的异常。 总之,Android的异步任务框架,尤其是AsyncTask,对于处理耗时操作至关重要。通过深入理解其...

    基于python+Django的异步任务分发处理系统 主要是提供创建异步任务,处理异步任务,结果写入数据库。.zip

    【标题】基于Python+Django的异步任务分发处理系统是计算机科学中常见的一个应用场景,主要用于提升应用程序的性能和响应速度。在这个项目中,主要实现了创建、管理和存储异步任务的功能,使得复杂的计算或耗时操作...

    android异步任务设计思详解(AsyncTask)

    Android中的异步任务设计主要体现在`AsyncTask`类上,它是Android SDK提供的一种方便快捷的多线程解决...理解`AsyncTask`的工作原理和注意事项,可以帮助开发者更高效地处理异步任务,提高应用程序的性能和用户体验。

    Python Celery分布式异步任务队列详解与应用

    内容概要:本文详细介绍了 Python 编写的 Celery 分布式异步任务队列的使用方法和应用场景。内容涵盖 Celery 的基本概念、配置方法、异步任务和定时任务的调用、任务流设计、日志处理、错误监控(Sentry)和与 Flask...

    quartz异步消息任务跟踪

    在Java应用中,Quartz常被用来实现复杂的工作调度需求,比如定时发送邮件、数据备份或者执行某些计算任务。这篇博客(https://hangyu608.iteye.com/blog/990924)可能详细讲解了如何在Quartz中实现异步消息任务跟踪...

    springboot整合异步任务

    也就是说,在SpringBoot应用中,我们不仅可以使用异步任务来提升效率,还可以通过定时任务定时执行某些任务。 在编写异步任务的执行类时,一般会使用@Component注解来声明一个组件。在这个类中,我们会定义一个或多...

    异步任务下载

    在Android开发中,异步任务(AsyncTask)是一种常见的处理耗时操作的方式,它使得开发者能够在主线程之外执行任务,避免了UI线程被阻塞,从而提高用户体验。本项目"异步任务下载"旨在帮助初学者理解如何利用...

Global site tag (gtag.js) - Google Analytics