如何判断 Android 中的 activity 或 fragment 是否显示

在 Android 开发中,有时候我们需要判断当前的 activity 或 fragment 是否正在显示在屏幕上,这样我们就可以根据需要进行一些相应的操作。下面我们就来介绍如何判断 activity 或 fragment 是否显示的方法。

判断 Activity 是否显示

要判断一个 Activity 是否显示,可以通过 onResumeonPause 这两个生命周期方法来实现。当一个 Activity 变为可见时,系统会调用 onResume 方法,而当一个 Activity 被遮挡时,系统会调用 onPause 方法。因此,我们可以在 onResumeonPause 方法中设置一个标志位来表示 Activity 的显示状态。

public class MainActivity extends AppCompatActivity {

    private boolean isActivityVisible;

    @Override
    protected void onResume() {
        super.onResume();
        isActivityVisible = true;
    }

    @Override
    protected void onPause() {
        super.onPause();
        isActivityVisible = false;
    }
}

这样,通过 isActivityVisible 的值就可以判断当前 Activity 是否显示了。

判断 Fragment 是否显示

对于 Fragment,我们可以通过 isVisible 方法来判断当前 Fragment 是否显示。isVisible 方法返回的是一个 boolean 值,表示当前 Fragment 是否可见。

public class MyFragment extends Fragment {

    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        
        if (isVisibleToUser) {
            // Fragment 可见时的操作
        }
    }
}

在上面的代码中,我们重写了 setUserVisibleHint 方法,在该方法中可以通过 isVisibleToUser 参数来判断当前 Fragment 是否可见。

流程图

flowchart TD;
    A[开始] --> B{Activity 是否显示};
    B -->|是| C[执行操作];
    B -->|否| D[结束];

总结

通过上面的方法,我们可以很方便地判断当前的 Activity 或 Fragment 是否显示在屏幕上,从而根据需要做出相应的操作。在实际开发中,这种判断是否显示的方法非常有用,可以帮助我们更好地控制界面的展示与隐藏。希望这篇文章对你有所帮助!