0

AnimationDrawable を使用して、欠落しているネットワーク接続を表示しています。表示/非表示ロジックは、ネットワーク ステータス変更レシーバーにリンクされています。それは正常に動作します。しかし、ステータスを認識してアクティビティを開始し、アニメーションを開始しようとすると、アニメーション化されたドローアブルが表示され、最初のフレームでフリーズします。ドキュメントを読みました-「OnCreateでアニメーションを開始しないでください」。だから私は onResume でコードを書きましたが、アニメーションはまだ再生されていません - 最初のフレームしか表示されません。ボタンまたはイベントから開始すると正常に動作します。別のスレッドで開始してしばらく待機しようとしましたが、この doent は良さそうです。

何か案が?

このコードは、ネット ステータス変更ハンドラから呼び出されたときに機能します

private void _NetStatus(boolean start)
{
    if (start)
    {
        m_NetStatus.setVisibility(View.VISIBLE);
        m_NetStatusFrameAnimation.start();
    }
    else
    {
        m_NetStatusFrameAnimation.stop();
        m_NetStatus.setVisibility(View.INVISIBLE);
    }
}
4

1 に答える 1

0

うーん。onCreate の最後に新しい Runnable を使用するようにアドバイスするいくつかのサンプルを試した後、アクティビティが画面に表示されたときにアニメーションを開始しようとしました。

@Override
public void onWindowFocusChanged(boolean hasFocus)

今のところ問題なく動作します。

于 2012-11-05T12:55:48.200 に答える