2017-04-16 62 views
0

我使用JobQueue库,我可以成功注入一些类如GithubService到例如:Android的注射类返回NULL

public interface GithubService { 
    @GET("repositories") 
    Call<List<GithubRepo>> getAllRepositories(); 
} 

现在我试图注入其它类如RxBus

public interface Bus { 

    void register(@NonNull Object observer); 

    <T> CustomSubscriber<T> obtainSubscriber(@NonNull Class<T> eventClass, @NonNull Consumer<T> receiver); 

    <T> void registerSubscriber(@NonNull Object observer, @NonNull CustomSubscriber<T> subscriber); 

    void unregister(@NonNull Object observer); 

    void post(@NonNull Object event); 

} 

到作业文件,但我得到空

作业类:

public class GetLatestRepositories extends Job implements JobManagerInjectable { 
    @Inject 
    transient GithubService githubService; 

    @Inject 
    transient Bus eventBus; 

    private Call<List<GithubRepo>> repositoryCall; 

    public GetLatestRepositories() { 
     super(new Params(JobPriority.MID).requireNetwork().persist()); 
     eventBus.register(this); /* IS NULL*/ 
    } 

    @Override 
    public void onAdded() { 
    } 

    ... 

    @Override 
    public void inject(ApplicationComponent component) { 
     component.inject(this); 
    } 
} 

ApplicationComponent

@ActivitiesScope 
@Component(dependencies = GithubApplicationComponent.class) 
public interface ApplicationComponent { 
    void inject(ActivityRegister activityRegister); 

    void inject(ActivityStartUpApplication activityStartUpApplication); 

    void inject(GetLatestRepositories getLatestRepositories); 
} 

GithubApplicationComponent

@AlachiqApplicationScope 
@Component(
     modules = { 
       UserInformationModule.class, 
       NetworkServiceModule.class, 
       PicassoModule.class, 
       JobManagerModule.class, 
       RxModule.class, 
       ActivityModule.class 
     } 
) 
public interface GithubApplicationComponent { 
    Picasso getPicasso(); 
    GithubService getGithubService(); 
    JobManager getJobManager(); 
    Bus getBus(); 
} 

RxModule

@Module 
public class RxModule { 
    @Provides 
    @AlachiqApplicationScope 
    public Bus getBus() { 
     return new RxBus(); 
    } 
} 

RxBux files

+0

哪个模块'@'Provides'例如Bus'?分享该模块的代码。 – azizbekian

+0

@azizbekian我的帖子已更新,我在帖子末尾添加了 –

+0

'RxBus'类在哪里? – azizbekian

回答

1

RxModule代替:

return new RxBus(); 

务必:

return BusProvider.getInstance(); 
+0

非常感谢 –