@Override
protected void onAnimationEnd() {
super.onAnimationEnd();
}
视图的这种被覆盖的方法可以触发,但是我怎样才能从这个方法中触发 UI 方法呢?
提前致谢。
@Override
protected void onAnimationEnd() {
super.onAnimationEnd();
}
视图的这种被覆盖的方法可以触发,但是我怎样才能从这个方法中触发 UI 方法呢?
提前致谢。
你想在 UI 线程上运行一些东西吗?您可以在 中调用该runOnUiThread
方法Activity
,并通过Runnable
它传递,这将在 Ui 线程上执行代码。
runOnUiThread(new Runnable() {
@Override
public void run() {
// Do something on the UI Thread
}
});
您必须记住,这runOnUiThread
会将代码切换到 Ui 线程,因此请确保在切换后不再执行任何操作。您还必须记住您正在切换线程,因此您不能保证runOnUiThread
方法内的代码将在您调用它之后的任何内容之前运行。
因此,在您的示例中,您将使用:
@Override
protected void onAnimationEnd() {
super.onAnimationEnd();
runOnUiThread(new Runnable() {
@Override
public void run() {
// Do something on the UI Thread
}
});
// continue with non-UI Thread stuff
}
好吧,这就是我的做法:
@Override
protected void onAnimationEnd() {
super.onAnimationEnd();
MainActivity.handler.sendEmptyMessage(0);
}
我在 MainActivity 中有一个静态处理程序对象,用于查找传入消息。仅此而已,但我想知道是否有更好的方法?