【问题标题】:How to detect if activity stack is empty and activity stack size?如何检测活动堆栈是否为空和活动堆栈大小?
【发布时间】:2016-03-19 01:03:37
【问题描述】:

一种方法是在 sharedpreference 中传递一个包/存储,通过它获取此信息。有没有其他方法可以实现这一目标?在片段中,您可以执行 getBackStackEntryCount。

【问题讨论】:

    标签: android back-stack fragment-backstack


    【解决方案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
                }
            });
        }
    }
    

    然后你只需要在一个列表中跟踪你的活动(不要把活动本身,把它的名称或弱引用)。您可以根据需要监控其他事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-07
      • 1970-01-01
      • 2011-07-15
      • 1970-01-01
      • 2015-04-16
      • 2011-09-16
      • 2012-07-10
      • 2011-09-19
      相关资源
      最近更新 更多