我如何“强制”Espresso执行一个动作(单击取消),即使应用程序没有空闲?
老实跟你说,我认为这是不可能的。我也有同样的问题。我通过使用UIAutomator单击取消按钮(在您的例子中)来修复它。
在我的例子中,我有一个登录按钮,之后有一个地图。在登录按钮之后,应用程序从来不会空闲,甚至只是在MapFragment中(浓缩咖啡的问题),所以我不得不使用UIAutomator进行登录按钮,并检查登录后地图是否出现。
我在应用程序的依赖项中弹出了这个:
androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
import androidx.test.uiautomator.*
//your imports here
@RunWith(AndroidJUnit4::class)
@LargeTest
class LoginTest {
@Rule
@JvmField
//your rules here
lateinit var mDevice:UiDevice
@Before
fun setUp() {
//your setUp stuff
mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
}
@Test
fun checkLogin(){
onView(withId(R.id.loginBtn)).perform(click()) //goes to LoginFragment
mDevice.findObject(UiSelector().text("LOGIN")).click() //clicks login button
//this is where I had to use the UIAutomator because espresso would never be
//idle after the login button
mDevice.wait(Until.findObject(By.text("YOU HAVE LOGGED IN")),15000)
//this waits until the object with the given text appears, max. wait time is 15 seconds
//as espresso would still not be idle, I had to check if the login was successful
//with (again) the help of UIAutomator
}
@After
fun tearDown() {
}
}
我正在开发一个将在Kiosk模式下运行的应用程序。在这个应用程序中,如果用户在5分钟内没有在应用程序中做任何事情,应用程序将显示一个屏幕保护程序,这是应用程序的徽标。 我的问题是,如何在5分钟内检测到空闲代码?
我想实现什么: 用户不活动3分钟后,我想显示一个新的活动。 研究: 我确实在Stackoverflow上查找了这个问题,我发现了一些提示,说明如何使用后台线程执行此操作,创建注册最后一次触摸的基本活动等。 问题: 如果我有超过 20 个活动,则表示 20 个活动,并且我不想从基本活动扩展所有活动。这意味着每次我创建一个新活动时,我都需要扩展这个基础活动,如果我的活动已经从其他一些基础活动扩展,这可
我已经将我的应用程序升级到了API 26,我面临着一些新的后台执行限制问题。 在Oreo设备上,只要我的应用程序进入后台,我的应用程序就会因日志中写入的空闲状态而被操作系统停止: 然后,我尝试再次启动我的应用程序,最后一个活动被正确还原(包括其片段和所有显示的数据) 问题是我的服务没有重新启动。 它们都在onstart命令中返回START_STICKY,该命令应该告诉操作系统,服务在被终止后应该重
如果按照步骤设置强制停止应用程序-
我有一个应用在谷歌Play商店。当一个更新版本可用时,旧版本将变得不可用--也就是说,如果用户不更新app,他们就不在app中进入。当新版本可用时,我如何强制用户更新应用程序?
我已经安装了Debian 8并且安装了Android Studio没有问题,但是当我运行我的应用程序时,当我在Ubuntu 15.04上使用Android Studio时创建的,我有以下错误: 这是什么样的错误?我如何解决? 谢谢你,丹尼斯