Java 使用persist()时未调用Android作业队列onRun()

Java 使用persist()时未调用Android作业队列onRun(),java,android,android-priority-jobqueue,Java,Android,Android Priority Jobqueue,我正在使用Yigits路径分叉的Android作业队列库进行API调用。我创建了一个简单的类来ping API。在类构造函数中,我调用super()如下: super(new Params(Priority.LOW).groupBy(GROUP).requireNetwork().persist()); 然后在onRun()方法中进行实际调用: @覆盖 public void onRun()抛出可丢弃的{ Call request=mAPI.getPing(); enqueue(new Pin

我正在使用Yigits路径分叉的Android作业队列库进行API调用。我创建了一个简单的类来ping API。在类构造函数中,我调用super()如下:

super(new Params(Priority.LOW).groupBy(GROUP).requireNetwork().persist());
然后在onRun()方法中进行实际调用:

@覆盖
public void onRun()抛出可丢弃的{
Call request=mAPI.getPing();
enqueue(new PingCallback());
}
问题是,如果我在构造函数中使用.persist(),则永远不会调用onRun()。如果我移除它,就会发出呼叫,一切正常。作业是可序列化的(因为它扩展了BaseJob,而BaseJob又从lib扩展了作业,lib实现了可序列化),所以这不是原因。onAdded()方法为空。有人能帮我解决这个问题吗

谢谢:)

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


一个技巧可能是清除不可序列化的对象(如上下文)的“瞬态”。但是通过这种方式,您只能在构造函数中使用此对象…在onAdded、onRun等中。。。它们将为空。

这里也有同样的问题。我怀疑问题在于扩展作业的类中使用了哪些对象。我认为所有对象都必须是可序列化的,但我还没有尝试过Yet如果我们需要将这些对象放入onRun()?是否有任何解决方法可用?如果它们是可序列化/可打包的,则可以在onRun中使用
@Override
public void onRun() throws Throwable {
    Call<String> request = mAPI.getPing();
    request.enqueue(new PingCallback());
}