gpt4 book ai didi

android - 在 onPause() 内调用 finish() 但在方向改变时不调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:12 26 4
gpt4 key购买 nike

我有一个应用程序需要在有人退出其主要 Activity 时调用完成(所以我不希望它被暂停),即使按下主页 Activity 也必须完成,来处理这个目前我只是在我的 onPause() 方法中调用 finish(),因为一切都是用 fragment 完成的,所以它工作得很好并且没有稳定性问题。

我唯一的问题是我无法处理方向变化,因为 onPause()onConfigurationChanged() 之前被调用(允许我禁用这个发生旋转时的行为)。

我可以创建一个服务来处理这个问题,但它的方式很复杂。

有什么想法吗?

最佳答案

您可以使用 onWindowFocusChanged事件而不是 onPause。方向改变时不会调用此函数。

@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
Log.d(TAG, "FOCUS = " + hasFocus);
if (!hasFocus) finish();
}

但请注意:当 Activity 仍然可见时调用此事件(如 onPause()),你应该如果您想在 Activity 真正完全不可见时完成它,请使用 onStop:

private boolean isInFocus = false;

@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
Log.d(TAG, "FOCUS = " + hasFocus);
isInFocus = hasFocus;
}

@Override
public void onStop() {
super.onStop();
if (!isInFocus) finish();
}

关于android - 在 onPause() 内调用 finish() 但在方向改变时不调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16274182/

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