# OptimusAsyncTask
基于 kotlin Channel 的优先级异步任务队列
适合于排队执行的任务实现,比如直播间动画排队播放。
# 导入
```gradle
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.EspoirX:OptimusAsyncTask:v1.5'
}
```
[![](https://jitpack.io/v/EspoirX/OptimusAsyncTask.svg)](https://jitpack.io/#EspoirX/OptimusAsyncTask)
# 特点:
1. 基于 kotlin Channel 实现
2. 可设置优先级
3. 使用简单
<a href="art/WechatIMG3.jpeg"><img src="art/WechatIMG3.jpeg" width="30%"/></a>
<a href="art/WechatIMG4.jpeg"><img src="art/WechatIMG4.jpeg" width="30%"/></a>
# 介绍
OptimusAsyncTask 将每个任务抽象成 OptimusTask,OptimusTask 可以设置任务执行时间,任务优先级,获取任务状态等。
同时 OptimusAsyncTask 提供了 OptimusTask 的默认实现类 BaseOptimusTask,它实现了 Comparable 接口,任务按照优先级排序。
**优先级 TaskPriority**
优先级的标准如下:
TaskPriority.LOW < TaskPriority.DEFAULT < TaskPriority.HIGH
当优先级相同 按照插入次序排队
默认优先级是 TaskPriority.DEFAULT
**任务**
任务种类可分为 2 种,分别是 执行时间不确定 的任务和 执行时间确定 的任务。执行时间不确定的任务在任务执行完后需要调用
doNextTask() 方法执行下一个任务,否则会一直挂起。
执行时间确定的任务需要重写 getDuration() 方法返回具体的执行时间,单位是毫秒,执行时间到了会自动执行下一个任务。
# 使用方法
1. 创建执行时间不确定的任务
```kotlin
private class Task1(var textView: TextView) : OptimusTask() {
@SuppressLint("SetTextI18n")
override fun doTask() {
textView.text = "执行时间不确定的任务-> " + getSequence()
//模拟该任务耗时两秒
textView.postDelayed({
doNextTask() //执行下一个
}, 2000)
}
override fun finishTask() {
Log.i("Task1", "finishTask-> " + getSequence())
}
}
```
2. 创建执行时间确定的任务
```kotlin
private class Task2(var textView: TextView) : OptimusTask() {
@SuppressLint("SetTextI18n")
override fun doTask() {
textView.text = "执行时间确定的任务-> " + getSequence()
}
//确定该任务耗时时间
override fun getDuration(): Long {
return 2000
}
override fun finishTask() {
Log.i("Task1", "finishTask-> " + getSequence())
}
}
```
3. 通过任务管理器 OptimusTaskManager 开始执行任务
一个 OptimusTaskManager 管理着一个任务队列。
```kotlin
val taskManager1 = OptimusTaskManager()
val taskManager2 = OptimusTaskManager()
```
更多例子请查看 demo。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
介绍 OptimusAsyncTask 将每个任务抽象成 OptimusTask,OptimusTask 可以设置任务执行时间,任务优先级,获取任务状态等。 同时 OptimusAsyncTask 提供了 OptimusTask 的默认实现类 BaseOptimusTask,它实现了 Comparable 接口,任务按照优先级排序。 优先级 TaskPriority 优先级的标准如下: TaskPriority.LOW < TaskPriority.DEFAULT < TaskPriority.HIGH 当优先级相同 按照插入次序排队 默认优先级是 TaskPriority.DEFAULT 任务 任务种类可分为 2 种,分别是 执行时间不确定 的任务和 执行时间确定 的任务。执行时间不确定的任务在任务执行完后需要调用 doNextTask() 方法执行下一个任务,否则会一直挂起。 执行时间确定的任务需要重写 getDuration() 方法返回具体的执行时间,单位是毫秒,执行时间到了会自动执行下一个任务。
资源推荐
资源详情
资源评论
收起资源包目录
OptimusAsyncTask.zip (45个子文件)
gradle.properties 1KB
gradle
wrapper
gradle-wrapper.jar 53KB
gradle-wrapper.properties 232B
art
WechatIMG3.jpeg 94KB
WechatIMG4.jpeg 79KB
optimustask
src
main
java
com
espoir
optimustask
TaskPriority.kt 149B
OptimusTask.kt 2KB
OptimusTaskManager.kt 5KB
IOptimusTask.kt 935B
TaskQueueManager.kt 1KB
res
values
strings.xml 79B
AndroidManifest.xml 109B
proguard-rules.pro 751B
build.gradle 782B
consumer-rules.pro 0B
.gitignore 7B
app
src
main
java
com
espoir
optimusasynctask
MainActivity.kt 3KB
res
mipmap-xxhdpi
ic_launcher_round.png 10KB
ic_launcher.png 6KB
mipmap-hdpi
ic_launcher_round.png 5KB
ic_launcher.png 3KB
drawable-v24
ic_launcher_foreground.xml 2KB
mipmap-anydpi-v26
ic_launcher.xml 272B
ic_launcher_round.xml 272B
mipmap-mdpi
ic_launcher_round.png 3KB
ic_launcher.png 2KB
mipmap-xxxhdpi
ic_launcher_round.png 15KB
ic_launcher.png 9KB
mipmap-xhdpi
ic_launcher_round.png 7KB
ic_launcher.png 4KB
values
colors.xml 208B
strings.xml 79B
styles.xml 383B
layout
activity_main.xml 3KB
drawable
ic_launcher_background.xml 5KB
AndroidManifest.xml 769B
proguard-rules.pro 751B
build.gradle 979B
.gitignore 7B
gradlew.bat 2KB
build.gradle 685B
settings.gradle 67B
gradlew 5KB
.gitignore 208B
README.md 3KB
共 45 条
- 1
资源评论
琴歌声声送我
- 粉丝: 311
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于 Ant 的 Java 项目示例.zip
- 各种字符串相似度和距离算法的实现Levenshtein、Jaro-winkler、n-Gram、Q-Gram、Jaccard index、最长公共子序列编辑距离、余弦相似度…….zip
- 运用python生成的跳跃的爱心
- 包括用 Java 编写的程序 欢迎您在此做出贡献!.zip
- (源码)基于QT框架的学生管理系统.zip
- 功能齐全的 Java Socket.IO 客户端库,兼容 Socket.IO v1.0 及更高版本 .zip
- 功能性 javascript 研讨会 无需任何库(即无需下划线),只需 ES5 .zip
- 分享Java相关的东西 - Java安全漫谈笔记相关内容.zip
- 具有适合 Java 应用程序的顺序定义的 Cloud Native Buildpack.zip
- 网络建设运维资料库职业
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功