Eine der Klassen, die ich geschrieben habe, muss reagieren, wenn die folgenden Aktivitätsereignisse auftreten:
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.
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
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.
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
Tags und Links android activity-lifecycle