Как определить, пустой ли стек активности и размер стека активности?

Одним из способов является передача пакета / хранилища в разделяемом предпочтении, через которое получается эта информация. Есть ли метод, отличный от этого, чтобы достичь этого? Во фрагментах вы можете сделать getBackStackEntryCount.

1 ответ

В своем классе Application зарегистрируйте прослушиватель событий жизненного цикла Activity:

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
            @Override
            public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
                // add to stack                
            }

            @Override
            public void onActivityStarted(Activity activity) {

            }

            @Override
            public void onActivityResumed(Activity activity) {

            }

            @Override
            public void onActivityPaused(Activity activity) {

            }

            @Override
            public void onActivityStopped(Activity activity) {

            }

            @Override
            public void onActivitySaveInstanceState(Activity activity, Bundle outState) {

            }

            @Override
            public void onActivityDestroyed(Activity activity) {
                // remomve from stack
            }
        });
    }
}

Тогда вам просто нужно отслеживать свои действия в списке (не помещайте само мероприятие, не ставьте название или слабую ссылку на него). Вы можете отслеживать другие события по мере необходимости.

Другие вопросы по тегам