如果调用 onActivityResult(),如何禁用 onResume() 调用

How to disable onResume() call if onActivityResult() is called

我在 onResume() 内部调用了刷新函数,如果用户最小化应用程序然后返回,它将刷新来自服务器的数据列表。问题是当用户从另一个 activity 返回时使用相同的功能但具有不同的参数(和不同的用例)。它只会部分刷新列表(不是所有数据)。如果调用 onActivityResult() 是否有可能阻止 onResume() 方法调用?

有一种方法可以实现,

onActivityResult

会在调用之前被调用

onResume

因此,您可以在那里添加一个标志并检查必要的条件。是否来自其他屏幕。

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (resultCode == Activity.RESULT_OK && requestCode == 3214) {
cameFromOtherScreen = true; }

override fun onResume() {
    super.onResume()
if(!cameFromOtherScreen) {
   //do your thing }
}

首先像这样设置一个全局布尔变量:-

boolean isPaused = false; 

现在在您的 activity 中设置一个方法:-

@Override
    protected void onUserLeaveHint() {
        isPaused = true;
        super.onUserLeaveHint();
    }

或在您的 onResume 方法中:-

@Override
    protected void onResume() {
        if(isPaused){
         isPaused = false;
        super.onResume();
          }

    }