@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
}
});
はコードを Ui スレッドに切り替えることを念頭に置いておく必要があるrunOnUiThread
ため、切り替えた後はそれ以上操作を行わないようにしてください。また、スレッドを切り替えていることを念頭に置く必要があるため、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 に静的ハンドラー オブジェクトがあります。これですべてですが、より良いアプローチがあるかどうか知りたいですか?