PreferencesActivity with Fragment - 如何确定用户 enter/left

PreferencesActivity with Fragment - how to determine user enter/left

我想确定用户是否在设置中。我有一个 PreferencesActivity 和一个 SettingsFragment.

第一种方法是使用 PreferencesActivityonResumeonPause 方法来做到这一点。问题是,如果我在设置的某些子项(例如 wlan 设置)上单击我的设置(PreferencesActivity),将调用 onPause 方法,但我仍在设置中并且没有离开它们。

如果用户完全加入或离开设置而不仅仅是 PreferencesActivity,是否有一些好的解决方案来检测?


另一个考虑是在从另一个 activity 调用时设置标志,但是你必须在调用设置的每个 activity 中都这样做。

然后是如何确定用户何时离开设置的问题。我尝试使用 PreferencesACtivity 的 onBackPressed 方法,但如果我在 SettingsFragment(设置子菜单)上单击返回并转到 PreferencesActivity(设置主菜单),也会调用此方法。

这样做。检查您的任何片段是否仍然可见并相应地进行处理

FragmentManager fragmentManager = YourActivity.this.getSupportFragmentManager();
List<Fragment> fragmentList = fragmentManager.getFragments();
if(fragment != null && fragment.isVisible()) {
    //user is still in settings or sub-settings
}else{
     //do something else
}