gpt4 book ai didi

android - onRestart() 在按下后退按钮时被调用,有什么办法可以防止这种情况发生?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:29:00 24 4
gpt4 key购买 nike

我的应用程序在刚刚启动时会调用一些 Web 服务。如果用户启动应用程序(在后台运行)并恢复,我还想调用这些 Web 服务。我研究了应用程序启动时以及 Activity 处于焦点时触发的所有方法。 onStart()、onResume()、onRestart() 等......

我认为 onRestart 是进行 Web 服务调用和更新 View 的好选择,问题是如果我从 Activity A(进行调用的那个)转到 Activity B 并点击后退按钮,Activity A 将触发onRestart() 并调用网络服务。我不希望每次我从我的应用程序中的某些 Activity 返回主屏幕时都发生这种情况。我只希望在我的应用 Activity A 从外部成为焦点时调用这些服务。他们还有其他我应该知道的事件可以帮助我吗?如果我点击主页按钮,然后点击我的应用程序图标,它应该会更新,但如果我点击主屏幕上的某个内容,打开一个新 Activity ,然后点击后退按钮,则不会更新。

希望这个问题是有道理的。

谢谢。

最佳答案

根据Activity lifecycle , onRestart 将在 onResume 之前被调用。因此,如果您将 Web 调用放在 onResume 中,它将在 Activity 首次启动和恢复时调用。 onRestart仅在用户导航回该 Activity 时调用。因此,您可以在 Activity 中设置一个 bool 值(例如 bool 值 isActivityRestarting),该值设置为 false,然后在 onRestart 中设置为 true。如果在 onResume 被击中时为真,则不要进行网络调用。

示例代码:

public void onRestart() {
isActivityRestarting = true;
}

public void onResume() {
if (!isActivityRestarting) {
executeWebCalls();
}

isActivityRestarting = false;
}

关于android - onRestart() 在按下后退按钮时被调用,有什么办法可以防止这种情况发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8390112/

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