我的主要活动有一些代码,可以进行一些不应该被中断的数据库更改.我正在另一个线程中执行繁重的任务,并使用一个进度对话框,我将其设置为不可取消.然而,我注意到,如果我旋转手机,它会重新启动活动,这对正在运行的进程非常不利,我会得到一个力关闭.

我想做的是通过编程禁用屏幕方向更改,直到我的流程完成,此时方向更改已启用.

推荐答案

正如克里斯在他的self-answer中所解释的那样,打电话给

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);

然后

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

真的很有魅力...在真正的设备上!

在模拟器上测试时不要认为它坏了,ctrl+F11快捷键总是改变屏幕方向,而不是模拟传感器的移动.

编辑:这不是最好的答案.正如 comments 中所解释的,这种方法存在一些问题.The real answer is here

Android相关问答推荐

如何制作带有图标和文本的Fab

Jetpack编写使用自定义主题覆盖库中主题部分

从单元测试访问RES/RAW文件

在模块中找到重复的类com.google.Firebase.auth.ktx.AuthKt||Android Studio

LocalContext.current的问题(@Composable调用只能从@Composable函数的上下文发生)

Android手柄注射周期错误,多个模块引用一个核心模块

FireBase Android ChildEventListener在被规则拒绝时触发(RTDB)

如何解决Gradle构建错误:java.lang.NoSuchMethodError

如何将 Room Persistence 依赖项正确添加到我的 Jetack Compose Android 应用程序

使用 async 向网络发出并行请求并在supervisorScope中处理它们

从我的 Android 应用程序发送到 Gin 时失败,但从 Postman 发送到 Gin 时成功

是否可以在 Android 应用程序的 Wifi 设置中为 DNS 服务器设置自定义 IP?

Android:使用依赖项 ViewModelProviderFactory 初始化 ViewModel 的正确方法

Android 模拟器 Wifi 连接没有互联网

如何以编程方式通过 whatsapp android 共享图像和文本

喷气背包组成影子奇怪的行为

android 13 版本是否会影响 android 12 目标应用程序

如何使用jetpack compose实现布局,其中图标在列布局上是绝对位置

Android Material Date Range Picker - 如何仅更改所选范围日期的文本 colored颜色 ?

操作系统会终止已启动的服务并调用Service.onDestroy吗?