Timer是在Android中实现递归的最佳方式吗?

时间:2015-08-14 04:50:33

标签: android android-viewpager

我以递归方式定期使用mViewPager.setCurrentItem(position);以编程方式更改Viewpager项目。下面的代码工作正常。请告诉我,这是实现此目的的最佳方式还是我的代码有任何问题。提前致谢。

    ViewPager mViewPager ;
    mViewPager = (ViewPager) findViewById(R.id.viewpager);

    Timer timer = new Timer();
    timer.schedule(new UpdateTimeTask(backgroundimages.length), 1, 5000);

    private class UpdateTimeTask extends TimerTask {
    int mLength = 0;

    public UpdateTimeTask(final int length) {
        this.mLength = length;
    }

    public void run() {
        mViewPager.post(new Runnable() {
            @Override
            public void run() {
                if (mViewPager.getCurrentItem()+1 < mLength) {
                    Updateviewpager(mViewPager.getCurrentItem() + 1);
                } else {
                    Updateviewpager(0);
                }
            }
        });
    }
}

public void Updateviewpager(int position) {
    mViewPager.setCurrentItem(position);
}

1 个答案:

答案 0 :(得分:0)

您可以使用CountDownTimer

new CountDownTimer(30000, 1000) {

 public void onTick(long millisUntilFinished) {
     mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
 }

 public void onFinish() {
     mTextField.setText("done!");
 }

}开始();

这样你就不会运行任何额外的线程了。