스플래시 활동이 일부 초기화를 수행하고있는 것 같습니다.
이 경우, 제 제안은 초기화가 완료 될 때 콜백을 수신 할 수 있도록 일종의 리스너 패턴을 정의하는 것입니다. 그런 다음 Espresso를 IdlingResource로 초기화 대기 상태로 만들 수 있습니다.
주의 : 다음은 전체 코드 아니지만, 당신에게 이렇게하는 방법에 대한 힌트를 제공하기위한 것입니다 :
onApplicationInitCompleted()는 당신이 정의하는 호출해야 콜백이
public class SplashIdlingResource implements IdlingResource, YourApplicationInitListener {
// volatile because can be set by a different
// thread than the test runner: the one calling back
private volatile boolean mIsInitialized;
private ResourceCallback mCallback;
public SplashIdlingResource() {
YourApplication application = // retrieve your Application object
mIsInitialized = application.isInitialized();
if (!mIsInitialized) {
application.addInitListener(this);
}
}
@Override
public String getName() {
return SplashIdlingResource.class.getName();
}
@Override
public boolean isIdleNow() {
return mIsInitialized;
}
@Override
public void registerIdleTransitionCallback(ResourceCallback callback) {
mCallback = callback;
}
@Override
public void onApplicationInitCompleted() {
m_isInitialized = true;
if (m_callback != null) {
m_callback.onTransitionToIdle();
}
}
}
때 스플래시 활동 및 초기화 작업이 완료됩니다.
마지막으로 테스트 설치에서 Espresso.registerIdlingResource를 호출하여이 새로운 IdlingResource를 Espresso에 등록하십시오.