Events

:

:

Elektronik | Funk | Software

Der Technik-Blog

  • Social Media

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden

    Der Technik-Blog

    Android Background Service & Autostart

    Android Service & Autostart

    Alex @ AEQ-WEB

    Auf dieser Seite haben wir ein Codebeispiel für Android, wie ein Background Service Dienst funktioniert. Das Hintergrund-Dienst ist wichtig, wenn die Android App im Hintergrund diverse Aktionen ausführen soll. Je nach Funktion müssen auch die dafür notwendigen Rechte in der Manifest hinzugefügt werden.

    Funktionsprinzip vom Service

    Ein Service ist für Hintergrundaktivitäten (Musik spielen, Datenübertragungen, Ortungsdienste usw.) gedacht. Diese Klasse läuft unabhängig vom User Interface. Es ist gut vergleichbar mit den Diensten unter Windows. Die Klasse muss auch weiterlaufen, wenn die App geschlossen wird oder abstürzt. Außerdem muss die Klasse über den Autostart direkt nach dem Booten von Android starten. Dazu gibt es eine eigene Klasse, die von Android aufgerufen wird, wenn der Bootvorgang abgeschlossen ist. Diese Klasse öffnet dann wiederum die Background-Klasse und startet diese. In der Service-Klasse gibt es ein Programm mit einem Task, der alle 10 Sekunden aufgerufen wird und eine Toast-Message ausgibt.

    Werbung:

    Aufwendige Aufgaben (Datentransfer, Ortungen, Sensorzugriffe usw.) sollten jedoch nicht zu oft im Hintergrund aufgerufen werden, da sich das sehr stark auf den Energieverbrauch auswirken kann. Widgets werden unter Android standardmäßig nur alle 30 Minuten aktualisiert. Genau so sollte auch das Service nicht ständig Ressourcen nutzen, da die App dadurch sehr schnell unbeliebt werden kann. Am Ende des Artikels kann die gesamte App als Source-Code sowie als fertige APK heruntergeladen werden. Als alternative gibt es für Android auch den Alarm Manager, der eine Klasse ebenfalls in einem bestimmten Intervall aufrufen kann.

    Manifest.xml: In der Manifest-Datei müssen die Rechte definiert werden, sowie der Receiver, der nach dem Bootvorgang ausgeführt wird, angegeben werden. Außerdem wird hier das Service deklariert.

    <receiver
                android:enabled="true"
                android:name=".BootUpReceiver"
                android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
                <intent-filter>
                    <action android:name="android.intent.action.BOOT_COMPLETED" />
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </receiver>
            <service android:enabled="true" android:name=".BackgroundService" />
    

    BackgroundService.java: Diese Datei beinhaltet den Code, der über einen Handler alle 10 Sekunden ausgeführt wird. Hier wird lediglich eine Toast-Messsage erstellt.

     @Override
        public void onCreate() {
            handler = new Handler();
            runnable = new Runnable() {
                public void run() {
                    Toast.makeText(context, "Service is working", Toast.LENGTH_LONG).show();
                    handler.postDelayed(runnable, 10000);
                }
            };
    
            handler.postDelayed(runnable, 15000);
        }
    

    BootUpReceiver.java: Diese Datei wird direkt nach dem Bootvorgang vom Betriebssystem aufrufen. Diese Klasse öffnet die zuvor gezeigte Background-Klasse.

    public class BootUpReceiver extends BroadcastReceiver {
    
        @Override
        public void onReceive(Context context, Intent intent) {
            /***** For start Service  ****/
            Intent myIntent = new Intent(context, BackgroundService.class);
            context.startService(myIntent);
        }
    

    BGH
    Download
    BG_Service Code
    Download

    122X122

    Über den Autor

    Alex, der Gründer von AEQ-WEB. Seit über 10 Jahren beschäftigt er sich mit Computern und elektronischen Bauteilen aller Art. Neben den Hardware-Projekten entwickelt er auch Webseiten, Apps und Software für Computer.

    Top Artikel in dieser Kategorie:

    Android HTTP Request - Async Task

    Android HTTP Request

    • DE/EN

    Auf dieser Seite zeigen wir, wie unter Android ein asynchroner HTTP/HTTPS Request gestartet wird und mittels Task verarbeitet wird.

    Weiterlesen
    Android GPS Data & Position Java

    Android GPS auslesen

    • DE/EN

    Auf dieser Seite zeigen wir, wie mit Android die GPS-Position, Geschwindigkeit & Seehöhe sowie der Name der Ortschaft ermittelt werden kann.

    Weiterlesen

    Social Media

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden