gpt4 book ai didi

Android-Priority-Jobqueue Survive Orientation Change

转载 作者:行者123 更新时间:2023-11-29 19:29:19 25 4
gpt4 key购买 nike

我正在尝试实现下面的库以适应方向变化: https://github.com/yigit/android-priority-jobqueue

这是我的配置:

 Configuration config = new Configuration.Builder(getApplication())
.consumerKeepAlive(45)
.maxConsumerCount(3)
.minConsumerCount(1)
.build();
return new JobManager(config);

这是我的示例作业:

public class CounterJob extends Job {
private int countTo;

protected CounterJob(int countTo, Params params) {
super(params);
this.countTo = countTo;
}

@Override
public void onAdded() {
Log.e("counting to", "" + countTo);
}

@Override
public void onRun() throws Throwable {
Log.e("running job", "" + countTo);
int total = 0;
for (int i = 0; i < countTo; i++) {
total += i;
}

Log.e("total", "" + total);
}

@Override
protected void onCancel(int cancelReason, @Nullable Throwable throwable) {

}

@Override
protected RetryConstraint shouldReRunOnThrowable(@NonNull Throwable throwable, int runCount, int maxRunCount) {
return null;
}
}

这是一个用于计数的 Controller 示例:

public class CounterController {
private JobManager mJobManager;

public CounterController(JobManager jobManager) {
this.mJobManager = jobManager;
}

public void count(int countTo) {
mJobManager.addJobInBackground(new CounterJob(countTo, new Params(1).requireNetwork().persist()));
}
}

我这样称呼:

@Override
protected void onResume() {
super.onResume();
mCounterController.count(1000000000);
}

当我旋转设备时,同样的工作再次开始。所以如果我没记错的话,如果我正在进行网络调用,当方向改变时它会重复请求。

我认为我的实现存在问题。我试图在图书馆页面中作为示例实现。有什么建议么?谢谢。

最佳答案

我猜你是在轮换时重新创建工作,所以你最终得到了 2 个工作。当 Activity 更改配置(也称为轮换)时,您不应将其入队两次。

关于Android-Priority-Jobqueue Survive Orientation Change,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40462348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com