gpt4 book ai didi

android - 手机锁定/休眠时不调用 ActivityInstrumentationTestCase2 中的 onCreate()

转载 作者:行者123 更新时间:2023-11-28 20:16:22 25 4
gpt4 key购买 nike

我正在使用 ActivityInstrumentationTestCase2 编写测试。

当模拟器打开并且 Activity 可以进入前台时,我的测试完美运行。

当我在手机锁定的情况下开始测试时,不会创建 Activity 。这似乎是“有道理的”,因为如果无法获得前台(手机已锁定!),则没有理由加载 Activity 。但是,在运行测试套件时,这会导致漏报...

这是一个示例测试

public void testSplashscreenRedirectsSomewhereAfterTimeout() throws Exception {

Instrumentation.ActivityMonitor monitor = getInstrumentation().addMonitor(SomeActivity.class.getName(), null, false);

getActivity(); // to make sure that the activity gets launched
Activity activity = monitor.waitForActivityWithTimeout(10000); // waiting for the other activity
assertNotNull("BaselineActivity was not called", activity);
}

当手机被锁定时,getActivity() 返回正确的 Activity ,但它的 onCreate() 方法永远不会被调用。

有什么方法可以让测试在屏幕锁定的情况下也能正常工作?

最佳答案

假设您关于没有创建 Activity 的说法是正确的,为什么不直接使用 KeyGuardManager 解锁手机呢? .除非在手机锁定和解锁时必须执行特定操作,或者您正在测试服务,否则我只会运行“准备测试环境”功能来检查屏幕是否已锁定,解锁它并运行你的测试。

How to tell if your screen is unlocked .如果没有,则解锁它并运行您的测试。

KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE); 
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
lock.disableKeyguard();

更新

使用以下命令关闭 Key Guard Lock

//Get the current window 
Window window = getWindow();
//Add the Flag from the window manager class
window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);

关于android - 手机锁定/休眠时不调用 ActivityInstrumentationTestCase2 中的 onCreate(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7263899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com