Apps Handy & Smartphone Tablets

Einführung Hintergrundprozesse (Timer) in Xamarin

In den ersten beiden Tutorials habe ich gezeigt, wie man seine erste eigene App mit Xamarin erstellt und, wie man sie in eine Multiscreen-Anwendung erweitert. Aufgrund der letzten Umfrage zu neuen Tutorials habe ich mich entschieden, euch kurz etwas über Hintergrundprozesse in Form von Timern zu erläutern. Die Umfrage läuft selbstverständlich weiter.

Will man eine erfolgreiche App entwickeln, reicht es natürlich nicht aus, einfache Strukturen bestehend aus Buttons, TextViews und anderen Komponenten zu erstellen. Ich meine hier das Vordergrund-Design, das User-Interface. Eine der wichtigsten Mittel, um seine App leistungsfähiger im Hinblick auf Code zu machen sind die Hintergrundprozesse. Diese sind, wie der Name schon sagt, für den User nicht sichtbar, sorgen aber dafür, dass bestimmte andere Prozesse fehlerfrei ablaufen. Für eine gute App sind sie unentbehrlich. Tatsächlich gibt es schon zahlreiche Hintergrundprozesse, welche in eurem Projekt in Xamarin automatisch für die App erstellt werden. Ohne jene Prozesse könnte die App auf eurem und anderen Geräten gar nicht laufen. Wer mehr dazu erfahren möchte, kann sich auch mit dem sogenannten Android-LifeCycle beschäftigen: Klick!

In diesem Tutorial soll der Timer vorgestellt werden. Dies ist eine simple softwaretechnische Machine, die es ermöglicht, eure App zeitabhängig zu machen. Oft werden zum Zählen im Code sogenannte Zählervariabeln und Schleifen benutzt. Dies geschieht aber sehr schnell. Soll das Zählen aber länger bzw. die gesamte Anwendungsdauer andauern, ist es ratsam einen Timer einzubauen. Ich selbst benutze Timer für SplashScreens (Ladeseiten), welche ich in einem späteren Tutorial beschreiben werde. Zudem ist der Timer das wesentliche Element für meine App Mr Mannk (Link zum Play Store), denn er verwaltet das Bewegen der herunterfallenden Gegenstände. Im Allgemeinen finden Timer in der Programmierung sehr viele Anwendungen, z.B. bei der Darstellung von Ladezeiten, aber auch allgemein in der Spieleentwicklung. Wie ein Timer arbeitet und wie ihr ihn in euren Projekt einbaut, das verrate ich euch jetzt.

Wir nehmen wieder ein neues Beispielprojekt. Dieses soll die einfache Funktion erfüllen, einen Countdown von einer im Code eingeschriebenen Anfangszahl vorzunehmen und dies visuell für den Nutzer sichtbar zu machen. Nennen wir die Anwendung einfach „Countdown“ und erstellen ein neues Projekt in Xamarin (zur Erinnerungen: Datei > Neu > Projektmappe > Android Application). Wieder erstellt uns Xamarin die gewohnten Anfangseinstellungen für unsere App.

  1. Das Design

Da das Design in dieser App für mich nur eine untergeordnete Rolle spielt, beschränke ich es hier in der Erstellung eines Buttons für den Start des Countdowns und einen Textview für die Darstellung der Zahlen:

Der xml-Code:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Starte Countdown" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/textView1"
android:gravity="center"
android:text="Text"
android:textSize="50dp" />
</LinearLayout>

Im Design ist natürlich jeder alleine gefragt. Mir geht es wirklich im Wesentlichen um den Code, den ich euch näherbringen möchte.

  1. Der Code

Timer werden zu 100% im Code erstellt und bearbeitet. Folgend werde ich euch den Code zeigen und neben jeder Zeile die Erklärung hinschreiben, damit es besser nachzuvollziehen ist. Im Wesentlichen lässt sich ein Thema in wenigen Schritten erstellen (Wird das Bild zu klein dargestellt, bitte daraufklicken):

  1. Resultat

Jetzt sollte die App reibungslos starten und die gewünschte Funktion erfüllen. Falls Fehler auftreten, könnte ein Vorgängerartikel helfen: Klick!

Mit Timern lässt sich eine Menge anstellen. Probiert es selber aus!