Android只运行一次runnable

时间:2012-07-11 13:18:58

标签: android runnable

嗨我有一个动画,我想延迟一个可运行的开始然而它导致动画循环我不需要我只是想让它延迟然后运行一次有人知道怎么办? / p>

继承我的代码

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_initialsetup);
        handler = new Handler();
        final Runnable r = new Runnable()
        {
            public void run() 
            {
                animations();
                handler.postDelayed(this, 1000);
            }
        };
        handler.postDelayed(r, 1000);
    }


    public void animations(){
        image = (ImageView)findViewById(R.id.su_shirts);
        AnimationMovepos = AnimationUtils.loadAnimation(this, R.anim.shirt_anim);   
        image.startAnimation(AnimationMovepos); 
    }
}

2 个答案:

答案 0 :(得分:7)

它正在循环,因为在runnable中你通过这个调用再次将它发布到处理程序:

handler.postDelayed(this, 1000);

删除它,它不会循环

答案 1 :(得分:2)

尝试删除handler.postDelayed(this, 1000);方法中的run()