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 ドキュメント (以下を参照)

Context.startService() への複数の呼び出しはネストしないことに注意してください (ただし、対応する onStartCommand() への複数の呼び出しが発生します)。

于 2014-06-01T11:08:05.573 に答える