ActivityScenarioRule的新首选方法是通过ActivityScenario提供的register方法来添加一个ActivityLifecycleCallback,以便在活动的各个生命周期事件中调用回调。以下是一个示例:
@Rule
public ActivityScenarioRule rule = new ActivityScenarioRule<>(MyActivity.class);
@Test
public void testSomething() {
rule.getScenario().onActivity(activity -> {
// 在Activity创建和启动后执行代码
});
// 在Activity暂停、停止和销毁之前执行代码
rule.getScenario().getLifecycle().addObserver(new LifecycleObserver() {
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
public void onResume() {
// 在Activity恢复时执行代码
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
public void onPause() {
// 在Activity暂停时执行代码
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public void onStop() {
// 在Activity停止时执行代码
}
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
public void onDestroy() {
// 在Activity销毁时执行代码
}
});
}