当前位置: 首页 > 知识库问答 >
问题:

Android阻止用户离开片段

鲜于温书
2023-03-14

有没有办法阻止用户留下一个片段(点击后退按钮,从导航中导航到其他片段,等等)?

情况是,当用户点击将文件备份到USB设备时,备份过程开始(线程),如果他留下这个片段,备份过程会发生一些尴尬的事情,应用程序会崩溃。

我在想我是否可以使用一些生命周期回调,比如:

@Override
    public void onPause() {
        super.onPause();
        //Do something to stop user from leaving
    }

有没有其他方法来处理这种情况并提供最好的用户体验(可能是一些对话片段)?

共有1个答案

岳浩穰
2023-03-14

您可以借助指示备份过程是否完成的标志覆盖背面的方法

override fun onBackPressed() {
    if(backUpFinished)
       super.onBackPressed()   
}

但是,您保存的备份不应该与片段相关

 类似资料:
  • 问题内容: 我想基于某种形式的输入运行相对耗时的脚本,但我宁愿不求助于cron,所以我想知道通过ajax请求的php页面是否将继续执行直到完成,或者如果该脚本页面停止,用户离开页面。 它直到文件末尾的json_encode才真正输出到浏览器,那么在此之前的所有内容仍然可以执行吗? 问题答案: 这取决于。 从http://us3.php.net/manual/zh/features.connecti

  • 问题内容: 我对Go如何处理非阻塞IO感到困惑。API在我看来基本上是同步的,并且在Go上观看演示时,听到诸如“和调用块”之类的注释并不罕见。 从文件或网络读取时,Go是否使用阻塞IO?还是当在Go Routine中使用某种魔术来重写代码? 来自C#背景,这感觉非常不直观,在C#中,当使用异步API时我们使用了关键字。这清楚地表明,API可以产生当前线程,并在以后的延续中继续。 因此,TLDR;当

  • 问题内容: 只要我的应用程序正在运行,我就想阻止传入的SMS消息。我 可以实现,但是问题是在我关闭该应用程序甚至重启 甚至卸载它之后,用户将不再能够接收SMS消息。 因此,如何使应用程序仅在运行时 以及关闭或卸载后才阻止传入的SMS,以停止阻止SMS。这是我的 代码: BroadCastReceiver.Java MainActivity.java Manifiest : 注意:我已经在andro

  • 当切换回第一个选项卡时,我需要不要再次返回数据!我做错了什么?你能帮帮我吗? 附言。对于导航,我使用navigation-advanced-sample中的sample,在切换选项卡后,不调用。 文章中的第一个解决方案是在片段中观察ViewModel中的LiveData: 一个合适的解决方案是使用getViewLifeCycleOwner()作为LifeCycleOwer,同时观察onActivi

  • 我正在做一个正在改造/现代化的项目,其中有一个小的RMI部分,不幸的是,我以前从未与RMI合作过。 我不明白的一件事是,为什么在我最初创建RMI客户端之后,它一直调用其自定义SocketFactory构造函数。似乎每5分钟我就会看到一次调用构造函数的输出,即使客户端和服务器之间没有通信。 连接完成后,我应该做什么来清理和停止任何线程以进行持久化? 我在检查UnicastRemoteObject,也

  • 问题内容: 只要我的应用程序正在运行,我就想阻止传入的SMS消息。我可以实现,但是问题是在我关闭该应用程序甚至重新启动甚至卸载它之后,用户将不再能够接收SMS消息。因此,如何使应用程序仅在运行中以及关闭或卸载后才阻止传入的SMS。以停止阻止SMS。这是我的代码: BroadCastReceiver.Java MainActivity.java 体现: 注意:我已经在android模拟器“使用Tel