KIO
Kreative Ideen online

Sie starten einen Dienst von einer Aktivität auf eine smilare Weise, um wie Sie eine Aktivität starten. Sie erstellen eine xpplicit-Absicht, die auf den Dienst gerichtet ist, den Sie starten möchten, und verwenden dann die startService()-Methode in Ihrer Aktivität, um sie zu starten:

Absichtsabsicht = neue Absicht(dies, DelayedMessageService.class;
startService(intent);

Vollständiger Code für kontextbezogen:

Paket eu.kio.joke;

importieren android.app.Activity;
importieren android.os.Bundle;
importieren android.view.View;
importieren android.content.Intent;

Public Class MainActivity erweitert Die Aktivität

    @Override
    geschützte void onCreate(Bundle savedInstanceState)
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void onClick(Ansichtsansicht)
        Absichtsabsicht = neue Absicht(dies, DelayedMessageService.class);
        intent.putExtra(DelayedMessageService.EXTRA_MESSAGE,getResources().getString(R.string.response));
        startService(intent);
    }
}

Der Servicecode:

Paket eu.kio.joke;

importieren android.app.IntentService;
importieren android.content.Intent;
importieren android.util.Log;


/**
 * Eine Unterklasse "@link IntentService" zur Behandlung asynchroner Aufgabenanforderungen in
 * ein Dienst in einem separaten Handlerthread.
 *<p>
 * TODO: Anpassung der Klasse - aktualisieren Sie Absichtsaktionen und zusätzliche Parameter.
 */
Die öffentliche Klasse DelayedMessageService erweitert IntentService

    öffentliche statische letzte Zeichenfolge EXTRA_MESSAGE = "Nachricht";

    öffentlicher DelayedMessageService()"
        super("DelayedMessageService");
    }

    /*Setzen Sie den Code, den der Dienst ausführen soll, in die onHandleIntent()-Methode*/
    @Override
    geschützte void onHandleIntent(Intent intent)
        synchronisiert(dies)"

            Versuch {
                warten(10000);
            • catch (InterruptedException e)
                e.printStackTrace();
            }
        }
        Zeichenfolgentext = intent.getStringExtra(EXTRA_MESSAGE);
        showText(Text);
    }

    Private void showText(endgültiger Zeichenfolgentext)
        Dadurch wird ein Textprotokollprotokolliert, damit wir ihn im Logcat über Android Studio sehen können.
        Log.v("DelayedMessageService","Die Meldung lautet: "+text);
    }
}

Wenn eine Anwendungskomponente (z. B. eine Aktivität) einen Dienst startet, wechselt der Dienst von der Erstellung zur Ausführung zur Zerstörung.

Der Dienst erbt Lebenszyklusmethoden

Es löst wichtige Service-Lifecyle-Methoden aus, die es von der android.app.IntentService-Klasse erbt.

  • onCreate()
  • onStartCommand()
  • onDestroy()

Sind die drei wichtigsten Service-Lebenszyklusmethoden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert