您会为Android推荐哪个Android优先级作业队列(作业管理器)库?
现在我使用greenrobot/EventBus但EventBus功能太窄(EventBus是发布/订阅事件总线)
备择方案:
您有什么推荐的吗?
作业管理器将负责优先级划分,持久性,负载平衡,延迟,网络控制,分组等.它还为您的作业提供了良好的生命周期,以提供更好,一致的用户体验.
我正在尝试使用Dagger 2集成Retrofit 2和Android Priority Job Queue.
很可能我在这里使用了错误的花样(我是新来的Java和Android),但我想从将要执行之前系列化然后反序列化对象访问匕首创建的改造实例(Android的作业队列连载持久存储到磁盘的作业).Retrofit实例由Application Dagger组件创建,因为我在其中一个依赖项中使用SharedPreferences.
我无法在创建时将Retrofit传递给作业,因为Retrofit本身无法序列化.
应用程序也无法序列,因此当它运行(因为我不能用我注入无法从工作中引用应用程序组件匕首((MyApplication) myApplication).component().inject(this);就像我可以做的活动,因为应用程序对象不反序列化的工作存在. )
我想使用应用程序其余部分使用的Retrofit实例来提高效率,而不是仅为作业创建另一个实例.它甚至可能吗?
我不确定使用Provider<T>或工厂是否可以提供帮助,因为这是我现在所不能理解的,但如果是这样的话,我会喜欢暗示如何构建事物!
编辑:这是如何使用Android优先级作业队列创建作业.我修改了一个样本,以表明我希望注射方式如何工作.onAdded()在运行之前,作业已序列化并反序列化onRun():
// A job to send a tweet
public class PostTweetJob extends Job {
@Inject MyService webservice;
public static final int PRIORITY = 1;
private String text;
public PostTweetJob(String text) {
// This job requires network connectivity,
// and should be persisted in case the application exits before job is completed.
super(new Params(PRIORITY).requireNetwork().persist());
}
@Override
public void …Run Code Online (Sandbox Code Playgroud)