在android中,为什么我的按钮动画只能从onClick()清除?

在android中,为什么我的按钮动画只能从onClick()清除?,android,animation,button,onclick,Android,Animation,Button,Onclick,我想制作一个按钮的动画,所以我使用了以下答案: 在第一次尝试的时候,它就被激活了。但是,当我试图在应用程序中的各个位置停止动画时,我发现只有在从onClick()回调调用view.clearAnimation()时,它才会停止动画 我的第一个猜测是,这与多线程同步问题有关,但我知道UI线程,并且我非常确定我是在主UI线程中批准的位置调用clearAnimation()方法的 我的另一个想法是UI需要失效或刷新?但是我试着在我的主布局上做一个无效之前,把这个电话放在正确的位置,但那没有帮助。我知

我想制作一个按钮的动画,所以我使用了以下答案:

在第一次尝试的时候,它就被激活了。但是,当我试图在应用程序中的各个位置停止动画时,我发现只有在从onClick()回调调用view.clearAnimation()时,它才会停止动画

我的第一个猜测是,这与多线程同步问题有关,但我知道UI线程,并且我非常确定我是在主UI线程中批准的位置调用clearAnimation()方法的

我的另一个想法是UI需要失效或刷新?但是我试着在我的主布局上做一个无效之前,把这个电话放在正确的位置,但那没有帮助。我知道我的invalidate工作正常,因为它可以更新其他按钮属性,如颜色


谢谢你的建议

您是如何从其他地方访问动画的?创建动画对象时,以及从所有这些位置清除动画时,请尝试打印该动画对象的hashCode()。如果hashCode()不同-您没有访问正确的对象谢谢提示。我在两个地方都打印了哈希代码,并得到了以下输出:`06-20 09:41:48.428:I/GDOOR(20318):wifi检查btn哈希:1094513400 06-20 09:41:59.952:I/GDOOR(20318):onclick main hash:1094513400`注意,第二个确实停止了动画,但第一个没有。我将尝试分离出有助于其他人验证/尝试我看到的内容的代码,并将其发布在今天的此处。好的,抱歉。我找到了我的窃听器。我应该启动调试器并逐步执行,因为那样会找到它。我在调用asyncTask方法后调用startAnimation()。所以它发生得如此之快,以至于我在动画开始之前就给clearAnimation打了电话!对不起,误报了!不用担心,每个人都会犯错:)