Question

Est-il possible de s'inscrire pour une activité d'événements?Je suis particulièrement intéressé par le démarrage / onStop événements, et je ne veux pas ajouter d'opérations spéciales dans l'activité.

Était-ce utile?

La solution

Une manière d'obtenir les événements du cycle de vie des autres activités, c'est pour inscrire votre classe comme une Application.ActivityLifecycleCallbacks avec les principaux Application exemple de filtre et des événements pour la Activity vous êtes intéressés.

C'est un petit exemple (vous pouvez enregistrer les rappels à partir d'une autre méthode/classe autre que MainActivity.onCreate ou vous allez manquer ce message ;) et vous pouvez avoir une dépendance que vous ne voulez pas)

Sur l'activité que vous souhaitez spy:

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Register a spy for this activity
        getApplication().registerActivityLifecycleCallbacks(new ActivitySpy(this));
    }
}

Puis l'Espion code ressemble à quelque chose comme:

public class ActivitySpy implements ActivityLifecycleCallbacks {

    private final Activity mActivity;

    public ActivitySpy(Activity activity) {
        mActivity = activity;
    }

    @Override
    public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
        if (mActivity == activity)
            Log.i("SPY", "Activity Created");
    }

    @Override
    public void onActivityDestroyed(Activity activity) {
        if (mActivity == activity)
            Log.i("SPY", "Activity Destroyed");
    }

    // (...) Other overrides

}

Vous pouvez également enregistrer l'espion d'un autre lieu que si vous avez une référence à l'Activité que vous souhaitez suivre.

J'espère que cela aide :)

EDIT: J'ai oublié de mentionner, cela ne fonctionnera que sur API de Niveau 14 et au-dessus...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top