android-multithread

授权协议 Apache
开发语言 Java
所属分类 手机/移动开发、 手机开发包
软件类型 开源软件
地区 国产
投 递 者 鲜于裕
操作系统 Android
开源组织
适用人群 未知
 软件概览

一个android平台上的 扩展任务库,在AsyncTask基础上进行扩展。

用法

1.继承 com.github.snowdream.android.util.concurrent.AsyncTask

//inherit a class from com.github.snowdream.android.util.concurrent.AsyncTask
public class DownloadFilesTask extends AsyncTask {
 public DownloadFilesTask(TaskListener listener) {
      //explicit inherit the construction from the super class.
      super(listener);
 }


/**
 * TODO 
 * if error occurs,carry it out.
 * 
 * if (listener != null) {
 *    listener.onError(new Throwable());
 * }
 */
protected Long doInBackground(URL... urls) {
     int count = urls.length;
     long totalSize = 0;
     for (int i = 0; i < count; i++) {
         totalSize += 10;
         publishProgress((int) ((i / (float) count) * 100));
         // Escape early if cancel() is called
         if (isCancelled()) break;
         try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
     }
     return totalSize;
 }
}



2.定义一个 TaskListener.其中的第一个泛型参数是返回结果类型,第二个泛型参数是任务进度的类型。

private TaskListener listener = new TaskListener(){


    @Override
    public void onStart() {
        super.onStart();
        Log.i("onStart()");
    }


    @Override
    public void onProgressUpdate(Integer... values) {
        super.onProgressUpdate(values);
        Log.i("onProgressUpdate(values)" + values[0] );
    }


    @Override
    public void onSuccess(Long result) {
        super.onSuccess(result);
        Log.i("onSuccess(result)" + result);
    }


    @Override
    public void onCancelled() {
        super.onCancelled();
        Log.i("onCancelled()");
    }


    @Override
    public void onError(Throwable thr) {
        super.onError(thr);
        Log.i("onError()");
    }


    @Override
    public void onFinish() {
        super.onFinish();
        Log.i("onFinish()");
    }


};


3.创建一个AsyncTask任务,并且执行。

URL url = null;
try {
    url = new URL("http://www.baidu.com/");
} catch (MalformedURLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}


new DownloadFilesTask(listener).execute(url,url,url);
  • SDL and Video SDL 和视频 To draw to the screen, we’re going to use SDL. SDL stands for Simple Direct Layer, and is an excellent library for multimedia, is cross-platform, and is used in several projects.

  • 在并发情况下,不推荐使用通常的Subject对象,而是推荐使用SerializedSubject,并发时只允许一个线程调用onnext等方法!  官方说明: <code class="hljs oxygene has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; fon

  • Thread 是一个并发的执行单元,在java中实现线程一是通过继承Thread类,二是实现Ruunable接口,当开始一个新线程的时候必须call start(),但是线程并不是马上就run起来,而是注册到JVM的线程调度器中准备run。 涉及对象:主线程和新启动的线程。 Handler的做要作用,主要接受子线程发送的数据,然后用这个数据去更新主线程的UI 解析: 每个Android应用程序都运

  • 我已经测试了一些有关如何加快多次下载速度的测试. 这张表显示了每次下载使用一个线程或一个新线程在不同网络上从2到10张图像的下载速度(使用Samsung Galaxy S1)有多快. Multithread SingleThread Images Wifi 3g Wifi 3g 2 1,1 6,6 2,0 6,7 4 1,7 8,0 5,2 9,6 6 2,1 6,1 7,5 15,5 8 2,3

  • 转载:请注明原地址: http://blog.csdn.net/wu4long/article/details/17756419      android的c/c++调用java的代码 都是通过jni的。 但如果你在c/c++新建自己的线程,然后在线程上通过jni调用java的代码,那就麻烦来了。 找不到你需要调用的class。 怎么办? Android里面有说明,http://developer

  • Android基础-05 网络编程2 01_post方式提交数据的中文乱码解决(重点) Android应用程序中默认是的字符集编码是UTF-8。 java.io.IOException: exceeded content-length limit of 29 bytes 在代码中对中文进行URL编码: String data = "username="+URLEncoder.encode(use

  • ANDROID批量文件上传(附Demo文件) 来源:互联网 作者:佚名 时间:2015-08-18 20:56 在最底层,java中的数据操作是通过使用操作符来 前言 此篇主要介绍android的批量文件上传(从相册选择图片并上传)。 客户端采用HttpClient和Http协议共2种上传方式。 服务端采用Spring MVC接收批量文件上传。 ANDROID客户端 1、HttpClient方式上

 相关资料
  • JNI绑定 Android上的Java资源 WebView代码组织

  • Native.js for Android封装一条通过JS语法直接调用Native Java接口通道,通过plus.android可调用几乎所有的系统API。 方法: currentWebview: 获取当前Webview窗口对象的native层实例对象 newObject: 创建实例对象 getAttribute: 获取对象(类对象/实例对象)的属性值 setAttribute: 设置对象(类对

  • Android++ 是一个免费的 Visual Studio 扩展,用于支持在 Visual Studio 上开发和调试原生的 Android 应用,主要基于 NDK 的 C/C++ 应用。同时包括可订制的发布、资源管理以及集成了 Java 源码编译。

  • Android(安卓)是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国谷歌公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由谷歌收购注资。2007年11月,谷歌与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后谷歌以Apache许可证的授

  • Android(安卓)是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国谷歌公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由谷歌收购注资。2007年11月,谷歌与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后谷歌以Apache许可证的授

  • 简介 该库提供J2SE的Swing、AWT等类的安卓实现,引用该库便能在Android上运行J2SE应用程序。 该库实现大多数必需功能,但不是全部的J2SE。 成功示例HomeCenter服务器,该服务器基于J2SE,同时完全运行于Android之上。 使用指引 该库依赖于开源工程HomeCenter。 它不含Activity,需另建Android工程,并引用本库。 Activity和res需作为