我想确定用户是否在设置中。我有一个PreferencesActivity
和一个SettingsFragment
。
第一种方法是使用onResume
的{{1}}和onPause
方法来执行此操作。问题是如果我在设置的某些子项(例如wlan设置)中单击我的设置(PreferencesActivity),将调用onPause方法,但我仍然在设置中并且没有离开它们。
如果用户完全加入或完全停止设置而不仅仅是PreferencesActivity,是否有一些好的解决方案可供检测?
另一个考虑因素是在从另一个活动调用时设置标志,但是你必须在调用设置的每个活动中都这样做。
然后是如何确定用户何时撤消设置的问题。我曾尝试使用PreferencesACtivity的onBackPressed方法,但如果我在SettingsFragment(设置子菜单)上单击并返回PreferencesActivity(设置主菜单),也会调用此方法。
答案 0 :(得分:1)
这样做。检查你的任何片段是否仍然可见,并相应地进行处理
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
}