Я делаю System.Timer, используя событие elapse для обновления int объекта, например:
public class VariaveisGlobais : Java.Lang.Object
{
SqlConnection BDLinha1 = new SqlConnection();
public SqlConnection p_BDLinha1
{
get { return BDLinha1; }
set { BDLinha1 = value; }
}
System.Timers.Timer Temporizador = new System.Timers.Timer(1000);
public System.Timers.Timer p_Temporizador
{
get { return Temporizador; }
set { Temporizador = value; }
}
int Tempo = 0;
public int p_Tempo
{
get { return Tempo; }
set { Tempo = value; }
}
}
Затем я использую делегата для обновления темпа var:
Vars.p_Temporizador.Elapsed += delegate
{
RunOnUiThread(() => AutoCompleta4.Text = Vars.p_Tempo.ToString());
Vars.p_Tempo++;
};
И для управления поворотом экрана я использую:
public override Java.Lang.Object OnRetainNonConfigurationInstance()
{
return Vars;
}
И используйте LastNonConfigurationInstance для восстановления переменных моего приложения.
Но каждый раз, когда я поворачиваю экран, таймер добавляет еще одно число к событию. Пример:
1 оборот = 1 - 3 - 5 - 7 ..., 2 вращения = 1 - 4 - 7 ..., 3 вращения = 1 - 5 - 9 - 13 ...
Похоже, что каждый раз, когда я поворачиваю экран, событие не уничтожается действием, и еще один - сборка.
Любые предложения?
Tks.