Code Monkey home page Code Monkey logo

falcon's Introduction

Falcon - 一个简单的Android异步任务执行框架

主要特性

  • Falcon通过链式调用完成提交执行

  • 调用链中可提交任意数量的任务,按先后顺序依次执行,前一返回值作为后一输入参数 ​

  • 调用链中随意切换任务的执行线程(主要是UI线程和后台线程池,默认为后台线程)

主要函数

  • newTak()开启一个新任务,同一个调用链可多次调用

  • exec() 提交执行任务,可连续任意数量的调用

  • flip() 设置后序任务的执行线程

  • finish() 成功执行任务后最后调用

  • error() 任务执行出错后执行,后取消后续任务

  • start() 开启任务

备注

  • 主要受到RxJava链式调用和线程切换启发,因此山寨了这么一个简单的框架,功能并不完善,细节有些粗糙,有时间再更新。

  • 原理很简单,就是线程池和handler的使用。

DEMO

      Falcon.newTask().exec(new Action(){
            @Override
            public Object call(Object obj) {
                Thread thd=Thread.currentThread();
                Log.i("Thread",thd.getName());
                String str=Curl.getText("https://www.baidu.com");
                Log.i("call",str);
                return str;

            }
        }).flip(Shoulder.getMain()).exec(new Action(){
            @Override
            public Object call(Object obj) {

                Log.i("call",obj.toString());
                Thread thd=Thread.currentThread();
                Log.i("Thread",thd.getName());
                tv.setText(obj.toString());
                return "down";
            }

        }).finish(new Action0() {

        @Override
        public void call(Object obj) {
            Log.i("finish",obj.toString());
        }

        }).error(new Action0() {

        @Override
        public void call(Object obj) {
            Log.i("error",obj.toString());
        }
        }).start();

        

falcon's People

Contributors

dingdangmao123 avatar

Stargazers

 avatar fishyer avatar bingo avatar  avatar Pranav Lathigara avatar daven avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.