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

时间:2017-09-20 14:50:35

标签: android bluetooth rxandroidble

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

1 个答案:

答案 0 :(得分:2)

只需覆盖后退按钮并使用一些标志? E.g。

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
  }

当然,不是使用super.onBackPressed();而是在大多数情况下完成Activity,您可以执行当用户点击后退按钮时执行的任何其他操作。