我正在寻找重新启动应用程序的解决方案,同时我的应用程序最小化并关闭(从后台删除)。有没有办法在测试执行时验证活动是否正在运行?如果活动已完成,则测试套件应识别并从后台重新启动活动。
我尝试过自定义ActivityTestRule并重新启动,但我的问题是应用程序只有在下一次测试执行后才会重新启动。因为我需要在同一测试中立即重新启动。
通过其他类似的查询,我尝试了以下解决方案,但它仍然不符合我的要求。
package android.support.test.rule;
public class ControlledActivityTestRule<T extends Activity> extends ActivityTestRule<T> {
public ControlledActivityTestRule(Class<T> activityClass) {
super(activityClass, false);
}
public ControlledActivityTestRule(Class<T> activityClass, boolean initialTouchMode) {
super(activityClass, initialTouchMode, true);
}
public ControlledActivityTestRule(Class<T> activityClass, boolean initialTouchMode, boolean launchActivity) {
super(activityClass, initialTouchMode, launchActivity);
}
public void finish() {
finishActivity();
}
public void relaunchActivity(int seconds) {
finishActivity();
sleep(seconds);
launchActivity();
sleep(seconds);
}
public void launchActivity() {
launchActivity(getActivityIntent());
}
public void sleep(int seconds) {
if (seconds > 0) {
try {
Thread.sleep(seconds * 1000);
} catch (Exception ex) {
}
}
}
}
在我的测试方法中调用launchActivity()。