我想确定用户是否在设置中。我有一个PreferencesActivitySettingsFragment

第一种方法是使用onResumeonPausePreferencesActivity方法来执行此操作。问题是,如果我在设置的某些子项(例如wlan设置)上单击设置(PreferencesActivity),则会调用onPause方法,但是我仍然在设置中,并且没有离开它们。

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



另一个考虑因素是在从另一个活动调用时设置标志,但是随后必须在每个调用设置的活动中进行设置。

然后是如何确定用户何时离开设置的问题。我试图使用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
}

09-27 14:36