0

我有以下设计:

public class MyService extends Service{
  protected Logger _log;
  int _counter;

  onStartCommand(...){
     _log.print (++_counter);
  }
}

public class MyServiceTestWrapper extends MyService{
  public void setLog(Logger mockLogger){ _logger = mockLogger; }
}

public class MyServiceTest extends ServiceTestClass<MyServiceTestWrapper>{
  public void test_myTest(){
    Logger fakeLogger = Mockito.Mock(Logger.class);

    // HERE IM NOT SURE HOW TO CONTINUE...
    //... 
    //...

    Mockito.verify(fakeLogger.write(Mockito.any(String.class))).times(3);
  }
}

如何获取服务实例并对 onStartCommand 进行 3 次调用?

谢谢您的帮助

4

1 回答 1

0

每次调用 startService(即使它已经在运行),onStartCommand都会被调用。

所以,要调用它 3 次,你可以简单地写:

Intent serviceIntent = new Intent(MainActivity.this, MySerivce.class);
for (int x = 0; x < 3; x++) {
    startService(serviceIntent);
}

来源:Android docs(如下图)

请注意,对 Context.startService() 的多次调用不会嵌套(尽管它们确实会导致对 onStartCommand() 的多次相应调用)

于 2014-06-01T11:08:05.573 回答