1

我正在使用 Path Android Job Queue 库的 Yigits fork 进行 API 调用。我制作了一个简单的类来 ping API。在类构造函数中,我像这样调用 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() 。如果我将其删除,则会进行呼叫并且一切正常。Job 是可序列化的(因为它扩展了 BaseJob,而 BaseJob 又从实现 Serializable 的 lib 扩展了 Job),所以这不是原因。onAdded() 方法为空。谁能帮我解决这个问题。

谢谢 :)

4

1 回答 1

2

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

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

于 2016-02-02T10:30:09.390 回答