Как определить, пустой ли стек активности и размер стека активности?
Одним из способов является передача пакета / хранилища в разделяемом предпочтении, через которое получается эта информация. Есть ли метод, отличный от этого, чтобы достичь этого? Во фрагментах вы можете сделать 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
}
});
}
}
Тогда вам просто нужно отслеживать свои действия в списке (не помещайте само мероприятие, не ставьте название или слабую ссылку на него). Вы можете отслеживать другие события по мере необходимости.