gpt4 book ai didi

android - 如何在用户离开后立即正确完成(重置) Activity

转载 作者:行者123 更新时间:2023-11-30 01:00:17 25 4
gpt4 key购买 nike

我有一个 Activity ,我认为这是一个关键操作(通过蓝牙与另一台计算机的特定通信),我想让它在用户离开 Activity 时无法恢复到该状态。换句话说,如果用户恢复 Activity ,则应该重新创建它。

由于此 Activity 使用蓝牙,它可能会启动一两个 Activity 以获得结果(Enable-Bluetooth Activity Request-Permissions Activity ),因此,我不能 简单地 finish() onPause() 中的 Activity 。

离开 Activity,我的意思是按下主页按钮、接听电话或按下多任务按钮

我尝试过一些 Activity 启动模式(如 singleTask)但没有成功。

我已经在 Activity 的 onCreate() 方法中调用了 super.onCreate(null) ,防止它在被销毁后重新创建到特定状态,但是我无论是否调用了 onDestroy() 都想要重置 Activity 。

有人对如何正确完成此操作有任何建议吗?

编辑:

Possible duplicate 中的问题解释了如何完全退出应用程序及其子任务(而仅 finish() 将完全满足我的需求——如果我知道在哪里调用它的话)。这个问题是关于找到一种干净的方法来不恢复 Activity 的先前状态。

最佳答案

如果您不希望状态在您通过主页按钮离开后持续存在,或者甚至在屏幕关闭时仍然存在,最简单的方法是使用可用的生命周期事件。这比通过强制关闭您的应用程序来解决 Android 设计要简单得多。

由于每次有人返回应用程序时都需要设置所有内容,因此您可以将所有设置逻辑从 onCreate 移到 onResume 中。然后,在 onPause 中执行所有必需的清理(终止您的 BT 连接等)。唯一可能的陷阱与更改屏幕旋转/打开键盘等可能触发您不想要的生命周期事件有关。如果您在 onResume 的 UI 线程上有很多长时间运行的任务,这可能会使您的程序响应速度变慢。

关于android - 如何在用户离开后立即正确完成(重置) Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39533495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com