gpt4 book ai didi

java - 每次 fragment 对用户可见时调用带有处理程序的方法,并且删除其回调是 fragment 不可见

转载 作者:行者123 更新时间:2023-12-02 12:09:57 24 4
gpt4 key购买 nike

我希望仅当特定 fragment 对用户可见时才运行处理程序,当该 fragment 不可见时,我希望停止处理程序。我的问题是当我上面有另一个 fragment 时处理程序正在运行。我的代码是( fragment 中的代码):

@Override
public void onResume() {
super.onResume();
updatedNotification();
}

private void updatedNotification() {
String alertInterval= TextUtils.isEmpty(prefManager.getKeyAlertTimeInterval())?"15":prefManager.getKeyAlertTimeInterval();
long timeInMillis = Long.parseLong(alertInterval)*1000;
runnable = new Runnable() {
@Override
public void run() {
updatedNotification();
}
};

handler= new Handler();
handler.postDelayed(runnable,timeInMillis);
}

@Override
public void onPause() {
super.onPause();
handler.removeCallbacks(runnable);
}

最佳答案

您可以尝试覆盖 setUserVisibleHintsetMenuVisibility并在其中添加处理程序代码:

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);

if (isVisibleToUser) {
updatedNotification();
} else {
handler.removeCallbacks(runnable);
}
}

或者

@Override
public void setMenuVisibility(final boolean menuVisible) {
super.setMenuVisibility(menuVisible);

if (menuVisible) {
updatedNotification();
} else {
handler.removeCallbacks(runnable);
}
}

关于java - 每次 fragment 对用户可见时调用带有处理程序的方法,并且删除其回调是 fragment 不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46621464/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com