当前位置:  开发笔记 > 编程语言 > 正文

在android-priority-jobqueue中检索当前活动作业列表

如何解决《在android-priority-jobqueue中检索当前活动作业列表》经验,为你挑选了1个好方法。

我想知道是否有推荐的方法来检索https://github.com/yigit/android-priority-jobqueue中的活动作业列表

这样,如果我有持续的工作仍在等待,我可以让用户知道哪些工作.



1> yigit..:

我们不提供此类API,因为它可能导致误用.例如检查作业是否存在以决定是否添加(因为这是竞赛条件的配方).

如果您真的需要这个,您可以覆盖持久队列并提供自己的队列,您可以在其中跟踪作业添加/删除.有关详细信息,请参阅JobManager配置WIKI:

https://github.com/yigit/android-priority-jobqueue/wiki/Job-Manager-Configuration

编辑:一个示例竞争条件

有人可能会写这样的代码:

if (!jobManager.hasJobOfType(ImportantJob.class)) {
    jobManager.addJob(new ImportantJob());
} else {
    // it is already added, no need to re add
}

这里有一个潜在的竞争条件,其中hasJobOfType返回true,但同时Job将被取消.现在,没有工作可以运行:/.另一个竞争条件是,代码可能已调用的其他地方,addJobInBackground因此它将被添加,但在hasJobOfType调用时尚未添加.

针对此类案例的最佳解决方案是onCancel 在onRun方法中重新创建另一个作业或手动处理先前作业的取消(使用全局计数器等).另一种选择是使用cancelAsync带有回调版本的方法.

http://yigit.github.io/android-priority-jobqueue/javadoc/index.html

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有