Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android,无限重复动画vs.instrumentation.waitForIdleSync()_Android_Animation - Fatal编程技术网

Android,无限重复动画vs.instrumentation.waitForIdleSync()

Android,无限重复动画vs.instrumentation.waitForIdleSync(),android,animation,Android,Animation,我有一个带有自定义视图的项目,该视图是动画的。动画是一个简单的alpha淡入淡出,它会无限重复自身。视图是一个光标,它使光标看起来像是在闪烁。当我开始为项目编写功能单元测试时,我遇到了一个问题,getActivity()方法由于动画而挂起在setUp方法中。 getActivity()在返回之前调用waitForIdleSync(),由于动画是在开始时启动的,getActivity()永远不会返回。这实际上花了我相当多的时间来弄清楚,我会开始测试,它会坐在那里什么也不做。。。这种情况也会100%

我有一个带有
自定义视图的项目,该视图是动画的。动画是一个简单的alpha淡入淡出,它会无限重复自身。视图是一个
光标
,它使
光标
看起来像是在闪烁。当我开始为项目编写功能单元测试时,我遇到了一个问题,
getActivity()
方法由于动画而挂起在
setUp
方法中。
getActivity()
在返回之前调用
waitForIdleSync()
,由于动画是在开始时启动的,
getActivity()
永远不会返回。这实际上花了我相当多的时间来弄清楚,我会开始测试,它会坐在那里什么也不做。。。这种情况也会100%发生

<>我不认为这是一个bug,因为技术上,如果动画运行,设备不是闲置的,但是这是一个问题。如果您有任何建议或解决方法,允许动画从一开始就运行,但在
ActivityInstrumentationTestCase2s
期间也使用
waitForIdleSync
,我们将不胜感激。通过等待其他事件提供与测试操作和应用程序操作的同步,我可以实现一种不使用
waitForIdleSync()
的解决方法,但是我仍然必须在某个时候调用
getActivity()
。一旦使用此方法,它将永远不会返回无限重复的动画。此外,动画必须在
onRestart
方法结束之前的某个时间开始。理想情况下,会有一个
waitForIdle(int timeout)
方法

我在错误的时间启动动画,或者我没有使用正确的方法启动动画?我以编程方式启动/停止动画,因为需要启动和停止应用程序中的闪烁行为。下面是我用来启动动画的代码。
startBlinking(Context)
方法是从
cursors
构造函数中调用的

public void startBlinking(Context context){
    Animation blink = AnimationUtils.loadAnimation(context, R.anim.cursor_blink);
    blink.setRepeatMode(Animation.RESTART);
    blink.setRepeatCount(Animation.INFINITE);
    startAnimation(blink);
}

我有这个问题,并报告为,但我不希望有人会很快修复它。我的解决办法是删除动画(这很有挑战性,因为它是无限进度视图)。对于您的情况,一个选项是在测试中更改动画计时,这样它就不会为每一帧设置动画。不太理想,但比我猜想的冷冻要好。

我想我也有同样的问题,我在中描述过。你解决过你的问题吗?