我正在尝试使用文本视图实现一个视图,每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开发的初学者,所以请原谅:)谢谢。
答案 0 :(得分:1)
事实证明,调用两次的方法是由代码逻辑中的一个简单错误引起的 - 我两次调用StartActivity。所以它与倒数计时器无关。谢谢你的回答。 :)