Ein Objekt auf Aktivitäten-Lebenszyklusereignisse aufmerksam machen?

8

Eine der Klassen, die ich geschrieben habe, muss reagieren, wenn die folgenden Aktivitätsereignisse auftreten:

  • onStart ()
  • onPause ()
  • onResume ()
  • onStop ()

Ich kann auf die Aktivität selbst reagieren:

Öffentliche Klasse Activity erweitert ApplicationContext {      protected void onCreate (Bundle savedInstanceState);

%Vor%

}

Von der Aktivität konnte ich dem betreffenden Objekt sagen, dass ein bestimmtes Ereignis eingetreten ist, aber ich mag diese Idee nicht: es erfordert den Entwickler, die Logik außerhalb meines Objekts / meiner Klasse zu implementieren. Idealerweise möchte ich, dass das Objekt für die Registrierung dieser Ereignisse verantwortlich ist und sich unabhängig von der Aktivität selbst als Listener einrichtet.

Irgendwelche Ideen? Vielen Dank im Voraus.

    
titusmagnus 01.04.2011, 00:54
quelle

2 Antworten

7

API-Ebene 14 verfügt über Application.ActivityLifecycleCallbacks.
Davor, afaik, tut mir leid, nein Wenn Sie Ihre Klasse anderen Benutzern anbieten möchten, müssen Sie entweder abstrakte Klassen bereitstellen, die die gängigsten Aktivitäten erweitern, oder sie müssen bestimmte Aufrufe in ihre eigenen Lebenszyklusmethoden einfügen, wie

%Vor%

Sie können es auch allgemeiner machen und abstrakte NotifyingActivity-Klassen erstellen, die NotifyingActivity.LifecycleListener akzeptieren, und Ihre Klasse dazu bringen, einen solchen Listener zu implementieren und sich selbst im Konstruktor zu registrieren.

    
kaay 09.05.2012 08:18
quelle
-1

Sie können diese Bibliothek verwenden, die genau das tut, was Sie tun möchten, ohne Code in Ihre schreiben zu müssen Aktivität oder in Ihrer Basisaktivität.

Und es ist sehr einfach zu benutzen:

%Vor%

Vielleicht hilft es jemandem

    
DDsix 23.02.2016 23:28
quelle

Tags und Links