小编G. *_*ard的帖子

如何使用Dagger 2.0覆盖单元测试中的模块/依赖项?

我有一个简单的Android活动,只有一个依赖项.我将依赖注入到活动中,onCreate如下所示:

Dagger_HelloComponent.builder()
    .helloModule(new HelloModule(this))
    .build()
    .initialize(this);
Run Code Online (Sandbox Code Playgroud)

在我的ActivityUnitTestCase我要重写一个模拟的Mockito的依赖.我假设我需要使用提供模拟的特定于测试的模块,但我无法弄清楚如何将此模块添加到对象图中.

在Dagger 1.x中,这显然是用这样的东西完成的:

@Before
public void setUp() {
  ObjectGraph.create(new TestModule()).inject(this);
}
Run Code Online (Sandbox Code Playgroud)

什么是Dagger 2.0相当于以上?

您可以在GitHub上看到我的项目及其单元测试.

android dagger dagger-2

56
推荐指数
3
解决办法
2万
查看次数

Android - 定期背景服务 - 建议

我正在开发一个应用程序,它将有关其位置的信息转发到远程服务器.我打算通过向Web服务器执行一个简单的HTTP发布来完成它,一切都很简单.

但根据规范,应用程序需要不时执行,每30分钟就说一次.独立于界面,即使应用程序关闭也需要运行.

我环顾四周,发现Android服务是需要使用的.我可以用什么来实现这样一个系统.手机重启时服务(或其他机制)会重启吗?

提前致谢.

service android

29
推荐指数
3
解决办法
3万
查看次数

RxJava:在每个订阅者处理完资源后关闭资源

我是RxJava的新手,我正在努力弄清楚如何正确地关闭资源,特别是在处理多个订阅者时.

我有一个Observable<T>地方T是一些Closeable资源(例如说一个Android数据库Cursor.

我可能在observable上有多个订阅者.close()在每个订阅者完成处理之后我想要资源.换句话说,在新资源交付/发出后关闭旧资源,最后在最后一个订阅者取消订阅时关闭最后一个资源.

我试图使用我调用的自定义操作符使其工作AutoCloseOperator,并且它几乎正常工作,但不太正确.即我仍然是竞争条件和/或泄漏,例如资源没有关闭.

在RxJava中执行此操作的正确方法是什么?

说我有这个代码:

final AutoCloseOperator<MyResource> autoClose = new AutoCloseOperator<MyResource>();
Subject<MyResource, MyResource> subject = PublishSubject.create();
Observable<MyResource> o = subject.lift(autoClose);

Subscription s1 = o.subscribe(new Action1<MyResource>() {
    public void call(MyResource myObj) {
        System.out.println("s1 handling " + myObj);
    }
});

subject.onNext(new MyResource(1));
subject.onNext(new MyResource(2)); // This should close Resource #1 after Resource #2 is delivered

Subscription s2 = o.subscribe(new Action1<MyResource>() {
    public void call(MyResource myObj) {
        System.out.println("s2 handling " …
Run Code Online (Sandbox Code Playgroud)

android rx-java rx-android

4
推荐指数
1
解决办法
1687
查看次数

标签 统计

android ×3

dagger ×1

dagger-2 ×1

rx-android ×1

rx-java ×1

service ×1