带片段的PreferencesActivity - 如何确定用户输入/离开

时间:2015-08-31 09:11:51

标签: java android android-fragments android-activity android-preferences

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

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

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

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

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

1 个答案:

答案 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
}