美文网首页
异步任务封装

异步任务封装

作者: OnlyRose | 来源:发表于2018-05-05 11:12 被阅读12次
package com.centforever.ctbasicframework.task;

import android.app.Activity;
import android.os.AsyncTask;

import java.lang.ref.WeakReference;

/**
 * Created by mgg on 2016/12/21.
 */

abstract public class SimpleAsyncTask<Params, Progress, Result> extends AsyncTask<Params, Progress, Result>{
    WeakReference<Activity> weakActivity;
    public SimpleAsyncTask(Activity activity) {
        weakActivity = new WeakReference<Activity>(activity);
    }

    protected final Result doInBackground(Void... voids) {

        return run();
    }

    private boolean canContinue() {
        Activity activity = weakActivity.get();
        return activity != null && activity.isFinishing() == false;
    }

    @Override
    protected void onPostExecute(Result t) {
        if(canContinue()) {
            onSuccess(t);
        }
    }

    abstract protected Result run();

    abstract protected void onSuccess(Result result);
}

相关文章

  • 异步任务封装

  • 封装异步任务

    项目中有一些操作比较耗时,例如AES解密,在第一次解密初始化时会用时1~2秒,这时候如果不把耗时操作放到异步任务里...

  • Generator(生成器)函数

    基本概念## 解决 异步编程,整个 Generator 函数就是一个封装的异步任务,或者说是异步任务的容器。 调用...

  • [原]PHP-yar拓展源码解读七-concurrent_cli

    异步任务的封装 Yar用yar_call_data_t表示一个异步任务,sequence是从1开始的任务ID,除了...

  • 一个简单的异步回调实现

    从Runnable到Callable,JDK虽然帮我们封装了异步结果的获取,但并没有为我们封装异步任务两种结果(正...

  • AsyncTask 简单使用

    AsyncTask: 异步任务,用来处理一般耗时任务 ,是对Handler 封装,便于使用。

  • 9 异步1-AsyncTask

    1、什么是AsyncTask本质上就是一个封装了线程池和Handler的异步框架,主要用来执行异步任务,其封装了异...

  • Android回顾--(十五)Loader加载器、SeachVi

    Loader:加载器   Loader实际上是官方封装的一个异步任务,这个异步任务能够很好的处理CPU和资源之间的...

  • Android AsyncTask基础

    AsyncTask是Android为了简化异步操作而封装的异步任务操作抽象类。当我们需要在程序中执行耗时的异步操作...

  • Android Kotlin 基于RxJava的简单封装

    前言 使用RxJava无非就是为了开异步任务,所以这儿简单按照个人使用习惯封装了下 使用方法 单个任务的异步 带有...

网友评论

      本文标题:异步任务封装

      本文链接:https://www.haomeiwen.com/subject/iapsrftx.html