如何在订阅完成之前暂停执行后退按钮?

How to pause execution of back button until subscription completes?

当按下后退按钮等事件发生时,我使用 RxAndroidBle 运行 遇到了很多问题,我想知道暂停执行后退按钮的最佳方法是什么。我基本上想创建一个锁,直到特定的蓝牙操作完成。操作完成后,我想完成后退按钮的执行。有人有什么想法吗?

只是覆盖后退按钮并使用一些标志?例如

private boolean delayedBack = false; // as member field

...other Activity code

@Override
public void onBackPressed(){
   if(someCondition)
      super.onBackPressed();
    else
      delayedBack = true;  
}

然后当某些异步操作完成时,只需检查该标志:

 if(delayedBack){
   super.onBackPressed();
   delayedBack = false; // in case you don't want to finish the Activity
  }

当然,除了使用在大多数情况下会完成 Activitysuper.onBackPressed(); 之外,您还可以执行当用户点击后退按钮时执行的任何其他操作。