1
@Override
protected void onAnimationEnd() {
    super.onAnimationEnd();
}

ビュー トリガーのこのオーバーライドされたメソッドは問題ありませんが、このメソッドから UI のメソッドを起動するにはどうすればよいですか?

前もって感謝します。

4

2 に答える 2

1

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
}
于 2012-10-24T11:03:11.897 に答える
0

さて、これが私がやった方法です:

@Override
protected void onAnimationEnd() {
    super.onAnimationEnd();
    MainActivity.handler.sendEmptyMessage(0);
}

着信メッセージを探す MainActivity に静的ハンドラー オブジェクトがあります。これですべてですが、より良いアプローチがあるかどうか知りたいですか?

于 2012-10-24T11:14:05.870 に答える