我想确定用户是否在设置中。我有一个PreferencesActivity
和SettingsFragment
。
第一种方法是使用onResume
的onPause
和PreferencesActivity
方法来执行此操作。问题是,如果我在设置的某些子项(例如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
}