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

时间:2019-05-17 06:27:22

标签: android android-activity android-lifecycle

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

2 个答案:

答案 0 :(得分:1)

有一种方法可以实现这一目标,

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

答案 1 :(得分:0)

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

boolean isPaused = false; 

现在在您的活动中设置方法:-

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

或您的onResume方法中:-

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

    }