gpt4 book ai didi

Android Instrumentation 主页按钮

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:45:42 25 4
gpt4 key购买 nike

知道为什么将 HOME 键发送到在 Instrumentation 下运行的应用程序没有任何作用吗?

import android.app.Instrumentation;
import android.view.KeyEvent;

public class MyInstrumentation extends Instrumentation {

public void sendKeys() {
// Works reliably
this.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);

// Does nothing, nothing is printed to logcat
this.sendKeyDownUpSync(KeyEvent.KEYCODE_HOME);
}
}

这在使用Robotium时是一样的以及使用 Instrumentation 时直接地。该行为在模拟器和非根设备上是相同的。

最佳答案

home 键在 instrumentation 中不起作用,即使它起作用也会让你处于一个不太有利的位置。 Android Instrumentation 只能检测它自己的进程,这意味着一旦它被发送出去,您将无法返回到您的应用程序,并且可能更糟糕的是它具有轻微的不确定性,因为如果 Android 感觉如此,它可以关闭您的进程这会导致您的测试结束。

虽然这对您没有多大用处,是吗?我怀疑您正在尝试测试与可以看到的 Activity 生命周期有关的事情 here .这可以通过仪器进行测试,但不能以您希望的简单方式进行测试。如果您查看检测类 (here) 的 API 文档,您会看到大量以 callActivityXXX(Activity activity) 形式存在的有用方法,其中 XXX 与您要执行的生命周期事件匹配。

使用这些方法比在主页重新启动要困难一些,我想您会喜欢,但它允许您将测试分解到较低级别,以确保您的应用程序在每个阶段都做正确的事情,这将使随着时间的推移它会变得更加健壮(比如测试它在 onPause 时保存其状态并在 onResume 时再次正确加载它)。

使用仪器进行测试的下一个最简单的方法取决于您是否使用模拟器,如果这只是要在模拟器上运行,您可以使用方向命令:

solo.setActivityOrientation(Solo.LANDSCAPE);
solo.setActivityOrientation(Solo.PORTRAINT);

这将导致您的 Activity 被销毁并恢复测试 Activity 生命周期的一些但不是所有状态。

关于Android Instrumentation 主页按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25184160/

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