我有一個custom view
這是動畫項目。動畫是一個簡單的阿爾法淡入淡出,無限重演。該視圖是cursor
,它使cursor
看起來像閃爍。當我開始爲項目編寫功能單元測試時,由於動畫的原因,我遇到了getActivity()
方法掛在setUp
方法中的問題。 getActivity()
在返回之前調用waitForIdleSync()
,並且由於動畫在開始時開始,所以getActivity()
從不返回。這實際上花了我相當多的時間弄清楚,我會開始測試,它會坐在那裏無所事事......這也會發生在100%的時間。Android,無限重複動畫與instrumentation.waitForIdleSync()
我不會認爲這是一個BUG,因爲從技術上講,如果動畫運行,設備不是空閒的,但是這是一個問題。任何建議或解決方法,以允許動畫運行,從一開始,也使用期間ActivityInstrumentationTestCase2s
將不勝感激。我可以通過等待其他事件來提供與測試操作和應用程序操作的同步來實現一個解決方法,以便不使用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);
}
我想我有同樣的問題,我在[這個問題]中描述(http://stackoverflow.com/questions/20860832/why-does-getactivity-block-during-junit-test-when-custom- imageview的通話開始)。你有沒有解決你的問題? –