Ich mache eine System.Timer, mit dem Verstreichen Ereignis ein int eines Objekts zu aktualisieren, wie folgt aus:Elapse Timer Event
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; }
}
}
Dann benutze ich einen Delegaten das var Tempo zu aktualisieren:
public override Java.Lang.Object OnRetainNonConfigurationInstance()
{
return Vars;
}
Und verwenden LastNonConfigurationInstance die Variablen meiner App wiederherzustellen:
Vars.p_Temporizador.Elapsed += delegate
{
RunOnUiThread(() => AutoCompleta4.Text = Vars.p_Tempo.ToString());
Vars.p_Tempo++;
};
Und die Bildschirm-Rotation i verwenden, um handhaben Lizenzierung.
Aber jedes Mal, wenn ich den Bildschirm rotiere, fügt der Timer eine weitere Zahl zum Ereignis hinzu. Beispiel: 1 Drehung = 1 - 3 - 5 - 7 ..., 2 Umdrehungen = 1 - 4 - 7 ..., 3 Umdrehungen = 1 - 5 - 9 - 13 ...
Sieht jedes Mal so aus Ich drehe den Bildschirm, das Ereignis wird nicht mit der Aktivität zerstört, und ein weiterer wird erstellt.
Irgendwelche Vorschläge?
Tks.
Nach einer kleinen Anpassungen, es funktionierte. Vielen Dank ! – Juliano