其内容可以参考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. Python \xd7\xaa\xd5\xbdOTT TV\xb1\xa6\xbd\xe0 编码

    import chardet s = '\xd7\xaa\xd5\xbdOTT TV\xb1\xa6\xbd\xe0\xc7\xa3\xca\xd6\xd2\xf8\xba\xd3\xa1\xa4\x ...

  2. Kubernetes用户指南(三)--在生产环境中使用Pod来工作、管理部署

    一.在生产环境中使用Pod来工作 本节将介绍一些在生产环境中运行应用非常有用的功能. 1.持久化存储 容器的文件系统只有当容器正常运行时有效,一旦容器奔溃或者重启,所有对文件系统的修改将会丢失,从一个 ...

  3. paste,两个文件相同行拼接在一起的shell命令

    今天又学到一个命令,果然厉害 参考这里 http://blog.csdn.net/anders_zhuo/article/details/8461641

  4. 2017.11.21 查询某个字段为null的记录

    注意,不使用 = null, 而是 is null. select fd_username, fd_tenantid, fd_validity from t_user WHERE fd_validit ...

  5. Eclipse+Maven远程部署项目到Tomcat中

    使用maven的自动部署功能可以很方便的将maven工程自动打包并且部署到远程tomcat服务器,省去一些繁琐的操作,节省大量时间. 我使用的tomcat版本是8.5,tomcat7和tomcat8都 ...

  6. 病毒木马查杀实战第022篇:txt病毒研究

    前言 反病毒爱好者们非常喜欢讨论的一个问题就是,现在什么样的病毒才算得上是主流,或者说什么样的病毒才是厉害的病毒呢?我们之前的课程所解说的都是Ring3层的病毒.所以有些朋友可能会觉得.那么Ring0 ...

  7. mac 上多版本python 共存

    Mac上自带了Python2.x的版本,有时需要使用Python3.x版本做开发,但不能删了Python2.x,可能引起系统不稳定,那么就需要安装多个版本的Python. 1.安装Python3.x版 ...

  8. CSS之Position全面认识

    CSS的很多其他属性大多容易理解,比如字体,文本,背景等.有些CSS书籍也会对这些简单的属性进行大张旗鼓的介绍,而偏偏忽略了对一些难缠的属 性讲解,有避重就轻的嫌疑.CSS中主要难以理解的属性包括盒型 ...

  9. HTML5事件-自定义右键菜单

    WEB领域中,为实现上下文菜单,开发人员面临的主要问题是如何确定应该显示这个上下文菜单(Windows 中,右键单击:Mac 中,Ctrl+单击), 以及如何屏蔽与该操作相关联的默认上下文菜单. 解决 ...

  10. svn your working copy appears to be locked run cleanup to amend the situation

    cleanup  则解决