首页 > 解决方案 > 同一个函数在两个不同的活动中被调用两次

问题描述

我正在尝试在 android studio 中制作我的第一个应用程序,但我遇到了一个问题,我有 2 个活动,而且我都有

public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        Log.e(TAG, "onWindowFocusChanged()");
        if (hasFocus) {
            hideSystemUI();
        }
    }
    private void hideSystemUI() {
        Log.e(TAG, "hideSystemUI()");
        getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_IMMERSIVE);
    }

但是,当我将活动更改为另一个活动时,会从两个活动中调用该函数,我不想破坏活动。

我应该制作包含此代码的第三个活动,然后从最后两个活动中删除吗?

标签: android

解决方案


这是一个非常非常普遍的问题!

一种解决方案是创建一个BaseActivity包含共享代码的代码。然后,您的两个活动都可以扩展BaseActivity以获得该功能。

如果您在扩展类方面需要更多帮助,这个答案涵盖了同样的问题。


推荐阅读