其内容可以参考http://blog.csdn.net/webgeek/article/details/17298237
,首先创建一个AsyncTask类
class GetFaceDetectTask extends AsyncTask<byte[],Integer,Integer> { //第一个参数是传递过来的参数,第二个是返回
//第一个byte[]代表输入到任务的参数类型,也即是doInBackground()的参数类型
//第二个Integer代表处理过程中的参数类型,也就是doInBackground()执行过程中的产出参数类型,通过publishProgress()发消息
//传递给onProgressUpdate()一般用来更新界面
//第三个Integer代表任务结束的产出类型,也就是doInBackground()的返回值类型,和onPostExecute()的参数类型
@Override
protected Integer doInBackground(byte[]... params) {
// TODO Auto-generated method stub int result = facedetector.run();
return result; //在执行过程中可以调用publicProgress(Progress...)来更新任务的进度
} @Override
protected void onCancelled() {
// TODO Auto-generated method stub
super.onCancelled();
} @Override
protected void onPostExecute(Integer result) { //处理完后代用 // TODO Auto-generated method stub
super.onPostExecute(result);
Toast toast = Toast.makeText(CameraActivity.this, "the detect result: "+result, );
toast.setGravity(Gravity.TOP, , );
toast.show();
shutterBtn.setClickable(true);
} @Override
protected void onPreExecute() { //执行前预处理
// TODO Auto-generated method stub
super.onPreExecute();
shutterBtn.setClickable(false);
} @Override
protected void onProgressUpdate(Integer... values) { //处理过程代用,可以用于更新UI
// TODO Auto-generated method stub
super.onProgressUpdate(values); } }
,然后在要调用的地方开始执行即可
例如在获取一帧预览数据后,开始处理,如下:
@Override
public void onPreviewFrame(byte[] data, Camera camera) { int mwidth = mCamera.getParameters().getPreviewSize().width;
int height =mCamera.getParameters().getPreviewSize().height; GetFaceDetectTask task = new GetFaceDetectTask();
task.execute(data); } 3,传递多个不同类型的参数给异步任务(http://codego.net/495279/)
  private static class MyTaskParams {
    int foo;
    long bar;
    double arple;
    MyTaskParams(int foo, long bar, double arple) {
      this.foo = foo;
      this.bar = bar;
      this.arple = arple;
    }
  }
  private class MyTask extends AsyncTask<MyTaskParams, Void, Void> {
     @Override
    protected void doInBackground(MyTaskParams... params) {
      int foo = params[0].foo;
      long bar = params[0].bar;
      double arple = params[0].arple;
      ...
    }
  }
  这样调用它:
  MyTaskParams params = new MyTaskParams(foo, bar, arple);
  MyTask myTask = new MyTask();
  myTask.execute(params);
 

AsyncTask机制学习的更多相关文章

  1. JUC.Lock(锁机制)学习笔记[附详细源码解析]

    锁机制学习笔记 目录: CAS的意义 锁的一些基本原理 ReentrantLock的相关代码结构 两个重要的状态 I.AQS的state(int类型,32位) II.Node的waitStatus 获 ...

  2. JAVA反射机制—学习总结

    最近收到很多关于Java反射机制的问题留言,其实Java反射机制技术方面没有太多难点,或许是大家在学习过程中遗漏了细小知识点,导致一些问题无法彻底理解,现在我们简单的总结一下,加深印象.什么是反射机制 ...

  3. 黑马程序猿_Java 代理机制学习总结

    -------<a href="http://www.itheima.com/"">android培训</a>.<a href=" ...

  4. JAVA的反射机制学习笔记(二)

    上次写JAVA的反射机制学习笔记(一)的时候,还是7月22号,这些天就瞎忙活了.自己的步伐全然被打乱了~不能继续被动下去.得又一次找到自己的节奏. 4.获取类的Constructor 通过反射机制得到 ...

  5. zookeeper 内部机制学习

    zookeeper 内部机制学习 1. zk的设计目标 最终一致性:client不论连接到那个Server,展示给它的都是同一个视图. 可靠性:具有简单.健壮.良好的性能.如果消息m被到一台服务器接收 ...

  6. 浏览器中js执行机制学习笔记

    浏览器中js执行机制学习笔记 RiverSouthMan关注 0.0772019.05.15 20:56:37字数 872阅读 291 同步任务 当一个脚本第一次执行的时候,js引擎会解析这段代码,并 ...

  7. AsyncTask官方学习

    异步任务学习 这两天使用到特别多的AsyncTask类,一块来学习一下吧 AsyncTask允许更方便和简单使用UI线程,这个类允许你在UI线程中进行后台操作和展示结果,而无需操作Thread或者ha ...

  8. JPA,EclipseLink 缓存机制学习(一) 树节点搜索问题引发的思考

    最近在项目在使用JPA+EclipseLink 的方式进行开发,其中EclipseLink使用版本为2.5.1.遇到一些缓存方面使用不当造成的问题,从本篇开始逐步学习EclipseLink的缓存机制. ...

  9. .NET GC机制学习笔记

    学习笔记内容来自网络资料摘录http://www.cnblogs.com/springyangwc/archive/2011/06/13/2080149.html 1.GC介绍 Garbage Col ...

随机推荐

  1. Widows 注册表 HKEY_CLASSES_ROOT

    Widows 注册表 HKEY_CLASSES_ROOT在此关键字之下,可以看到有一个CLSID关键字.在CLSID关键字之下列有系统中安装的所有组件的CLSID.注册表CLSID是一个具有如下格式的 ...

  2. js动态创建和删除option

    1.动态创建select function createSelect(){           var mySelect = document.createElement("select&q ...

  3. 适用于 Charles任 意版 本的 注 册 码

    // Charles Proxy License // 适用于Charles任意版本的注册码,谁还会想要使用破解版呢. // Charles 4.2目前是最新版,可用. Registered Name ...

  4. django dispatch

    from django.views import View # 这里Home需要继承View class Home(View): # 这样这里就相当于一个装饰器的功能,可以自己定制化内容 def di ...

  5. [Android] android:visibility属性应用

    在Android开发中,有这样一种场景: 当edittext中有内容时候,旁边的提交或确定按钮显示: 当edittext中内容为空的时候,提交或确定按钮隐藏: 要实现起来其实并不困难.很多控件都有vi ...

  6. B2:观察者模式 Observer

    定义了一种一对多的依赖关系,多个观察者对象同时监听某一主题的变化,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们可以更新自己. 应用场景:某个实例的变化影响到了其他对象. UML: 示例代 ...

  7. 【Python3 爬虫】01_简单页面抓取

    运行平台:Winodows 10 Python版本:Python 3.4.2 IDE:Sublime text3 网络爬虫 网络爬虫,也叫网络蜘蛛(Web Spider),如果把互联网比喻成一个蜘蛛网 ...

  8. Loadrunner Analysis之Web Page Diagnostics

    Loadrunner Analysis之Web Page Diagnostics 分类: LoadRunner 性能测试 2012-12-31 18:47 1932人阅读 评论(2) 收藏 举报 di ...

  9. Phalcon 訪问控制列表 ACL(Access Control Lists ACL)

    Phalcon在权限方面通过 Phalcon\Acl 提供了一个轻量级的 ACL(訪问控制列表). Access Control Lists (ACL) 同意系统对用户的訪问权限进行控制,比方同意訪问 ...

  10. 通过Jenkins部署java项目

    部署java项目-创建私有仓库 Jenkins大多数情况下都是用来部署Java项目,Java项目有一个特点是需要编译和打包的,一般情况下编译和打包都是用maven完成,所以系统环境中需要安装maven ...