在Android中使用CountDownTimer时,OnCreate调用了两次

时间:2016-08-23 07:02:11

标签: android xamarin countdowntimer

我正在尝试使用文本视图实现一个视图,每600毫秒倒数一个数字,并在文本视图中动态显示数字。

问题:活动按预期调用,但在倒计时期间,活动再次创建,倒计时从开始开始。我的活动中的OnCreate()方法被调用两次,尽管它应该被调用一次。我知道它可以通过改变屏幕方向和其他配置变化来触发,但它似乎不会发生在这里。

我的活动中的OnCreate():

protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        SetContentView(Resource.Layout.SqueezeLayout);
        countdownTextView = (TextView)FindViewById(Resource.Id.countdown_text_view);
        Timer myTimer = new Timer(18000, 600, this);
        myTimer.Start();
    }

我的CountDownTimer实现:

class Timer : CountDownTimer
    {
        public int count = 30;
        SqueezeActivity squeezeActivity;

        public Timer(long totaltime, long interval, SqueezeActivity activity)
                                 : base(totaltime, interval)
        {
            squeezeActivity = activity;
        }

        public override void OnTick(long millisUntilFinished)
        {
            count--;
            String countStr = count.ToString();
            squeezeActivity.countdownTextView.Text = countStr;
        }

        public override void OnFinish()
        {
            squeezeActivity.StartActivity(typeof(AnotherActivity));
        }

    }

我是Xamarin开发的初学者,所以请原谅:)谢谢。

1 个答案:

答案 0 :(得分:1)

事实证明,调用两次的方法是由代码逻辑中的一个简单错误引起的 - 我两次调用StartActivity。所以它与倒数计时器无关。谢谢你的回答。 :)