plusone

3. Oktober 2011

Android Service - Einstieg (Part1)

Frohen Tag der Deutschen Einheit,

das Wetter ist uns gesonnen und in Bonn geht die Party ab.
Für die jenigen, die trozdem auch an Android Services interessiert sind, hier ist mein Einstieg.

Die developer-Seite hat drei recht gute Seiten, um den Einstieg zu bewältigen. Reference, DEV-Guide und Bound Service.
Mein Blog ist ja nicht auf englisch, also... fangen wir Mal an!

Was brauchen wir? Eine Klasse die von Service erbt ist ein guter Anfang.

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;

public class StorageService extends Service {

    public StorageService() {
        super();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // Diese Methode wird beim Starten aufgerufen!
        return super.onStartCommand(intent, flags, startId);
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
}


Der Service hat nur eine abstrakte Methode und das ist onBind, leider können wir in diesem Beispiel
damit nichts anfangen. Dennoch muss diese implementiert werden, danach könnt ihr diese ruhig ignorieren.

Unsere Serviceklasse ist geschrieben, kommen wir dazu wie wir unseren Service starten. Dazu instanzieren wir ein Intent und übergeben unsere aktuelle Activity und die Klasse unseres Services, meine hab ich StorageService getauft, da diese für die Speicherverwaltung zuständig ist. Euch steht die Namensgebung frei. Und starten mit der Methode startService(Intent).

    Intent service = new Intent(this, StorageService.class);
    startService(service);
 

Huh, das war schwer. Überanstrengt? Nein? Wusste ich doch, ihr schaft es!
Die Methode onStartCommand wird beim Starten des Services ausgeführt, dort könnt ihr das coden, was ihr benötigt.

Bitte den Service in der AndroidManifest.xml nicht vergessen einzutragen. Hier mein Eintrag. Das einzige Pflichtfelt ist android:name. Der Eintrag gehört ist das Tag application, genau dort wo ihr eure Activities eintragt.

<manifest ..>
    <application ..>  
        <service android:name="de.alexroid.projekt.service.StorageService"
            android:enabled="true">
        </service>

    </application>
</manifest>


Mehr ist nicht nötig, um den Service zum Laufen zu bringen.
Natürlich könnt ihr vor dem startService(Intent), dem Intent noch putExtras anhängen, diese werden mit übergeben und ihr könnt beim onStartCommand auf diese Extras zuzugreifen.

Nun denn Viel Erfolg!


Hintergrundinformationen zu Service - startService():
  • starten im Hintergrund
  • beendet sich spätestens mit dem Programm, dass ihn gestartet hat, selbst
  • im Normalfall wird eine Aufgabe erledigt, ohne ein Ergebniss zurückzuliefern
 
regards
Alexander Fink

Part2 - bindService und Methodenaufruf

Quellen:
http://developer.android.com/guide/topics/fundamentals/services.html
http://developer.android.com/reference/android/app/Service.html

Keine Kommentare:

Kommentar veröffentlichen