Android Job Queue onRun() 使用 persist() 时未调用



我正在使用 Path Android Job Queue 库的 Yigits 分支来进行 API 调用。我做了一个简单的类来pingAPI。在类构造函数中,我像这样调用 super():

super(new Params(Priority.LOW).groupBy(GROUP).requireNetwork().persist());

然后在 onRun() 方法中进行实际调用:

@Override
public void onRun() throws Throwable {
    Call<String> request = mAPI.getPing();
    request.enqueue(new PingCallback());
}

问题是,如果我在构造函数中使用 .persist(),则永远不会调用 onRun()。如果我删除它,则会拨打电话并且一切正常。作业是可序列化的(因为它扩展了 BaseJob,而 BaseJob 又从实现可序列化的库扩展了作业),所以这不是原因。onAdded() 方法为空。谁能帮我解决这个问题。

谢谢:)

我确认。传递给构造函数的所有对象(可能是您使用的所有对象)都必须是可序列化的。

一个技巧可能是对不可序列化的对象(例如上下文)进行"瞬态"处理。但是通过这种方式,您只能在构造函数中使用此对象...在添加,运行等...它们将为空。

最新更新