代码之家  ›  专栏  ›  技术社区  ›  David Carek

如何暂停执行后退按钮,直到订阅完成?

  •  0
  • David Carek  · 技术社区  · 7 年前

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

    1 回复  |  直到 7 年前
        1
  •  3
  •   Droidman    7 年前

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

    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