android - 活动切换时意外的短暂方向变化

2023-12-04

我想在我的 Android 应用程序中动态设置屏幕方向。为此我使用

activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT));

和类似的。到目前为止,效果很好,但当我从一项活动转到另一项活动时,我偶尔会遇到不必要的短暂方向转换。当我以一种让传感器将方向设置为与编程选择的方向不同的方式握住设备时,就会出现问题。

我能够在以下简单的应用程序中重现该问题,该应用程序基本上由两个活动组成,让用户通过按下按钮切换到另一个活动。为了简单起见,我将活动中的方向始终设置为横向,但请记住,我需要的是在运行时选择方向,因此将方向设置移动到清单对我来说不起作用。

任何关于如何避免这种不必要的偶尔屏幕方向切换的建议都会很棒。

Thanks

martin

public class A_Activity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main_a);

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    Button b = (Button) findViewById(R.id.button_a);
    b.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            startActivity(new Intent(A_Activity.this, B_Activity.class));
        }
    });

}

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

}
}  

第二个活动 - B_Activity - 的定义方式与按下按钮时启动 A_Activity 的方式相同

布局很简单

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<Button
    android:id="@+id/button_a"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="Click A" />

</LinearLayout>

和清单

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.switchactivitytest"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="15" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".A_Activity"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:label="A Activity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".B_Activity"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:label="B Activity" >
    </activity>
</application>

</manifest>

将其用于清单中的活动,而不是以编程方式更改方向

android:screenOrientation="landscape"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android - 活动切换时意外的短暂方向变化 的相关文章

  • 如何做Android - 滑动抽屉从左到右滑动..?

    如何将android滑动抽屉从LTR滑动 使用时android orientation horizontal 它从 RTL 滑出 我该如何进行 LTR 谢谢 我找到了答案表格 Here http blog sephiroth it 2011
  • 在 Android 上通话结束时启动活动

    我想在通话结束时启动一项活动 找不到任何对此的参考 我该怎么做 我还没有尝试过这个 但我假设你可以运行一些服务 始终在后台运行 它利用电话状态监听器 http developer android com reference android
  • Android Studio:XML 布局中的“包装在容器中”

    编辑 XML 布局文件时 Eclipse 有一项称为 包裹在容器中 的功能 重新格式化 gt Android gt 可让您选择一个或多个视图并在其周围包裹您选择的布局 Android Studio中有类似的东西吗 目前正在实施中 问题 69
  • 如何正确释放Android MediaPlayer

    我正在尝试向我的 Android 应用程序添加一个按钮 当点击该按钮时它会播放 MP3 我已经让它工作了 但没有办法释放 mediaPlayer 对象 因此即使在我离开活动后它仍然会继续播放 如果我在react 方法之外初始化MediaPl
  • fetchUuidsWithSdp 的奇怪 UUID 逆转

    我有一个在树莓派上运行的 python 蓝牙服务器 使用 PyBluez 我在服务器中使用的uuid是 8f86d132 4ab8 4c15 b8df 0b70cf10ea56 我正在打电话device fetchUuidsWithSdp
  • 如何在 Linux 内核中定义并触发我自己的新软中断?

    我想在 Linux 内核中创建自己的软中断 这是正确的方法吗 In the init我想触发该模块的softirq我将添加一个调用 394 void open softirq int nr void action struct softir
  • Recyclerview 动态部分不使用任何第三个库

    我想将标头添加到 recyclerview 我正在尝试使用来实现它 Override public int getItemViewType int position depends on your problem if position 0
  • Android应用程序组件销毁和重新创建的详细信息

    有人可以向我提供一些具体的 值得信赖的 最好是简洁的 信息 内容如下 系统销毁和 如果适用 重新创建组件的顺序 片段 活动 活动的线程 异步任务 计时器 静态数据 类何时卸载 其他类中的线程 异步任务 定时器 主机 TabActivity
  • 如何更改终端的默认目录?

    我想更改 Android Studio v2 2 2 终端的默认目录 当我打开终端时 它基于项目的目录 C 项目路径 我经常需要使用adb shell 所以我必须导航到 SDK 路径 平台工具 才能使用 adb 命令 是否可以更改终端的默认
  • Dialog.setTitle 不显示标题

    我正在尝试向我的对话框添加自定义标题 但是每当我运行我的应用程序时 它都不会显示标题 我创建对话框的代码是 final Dialog passwordDialog new Dialog this passwordDialog setCont
  • Android 手机作为 GSM 调制解调器在 PC 上发送/接收短信?

    是否可以将 Android 移动设备用作 PC 上的 GSM 调制解调器 我正在 net下开发应用程序来发送 接收短信等 现在我想通过 USB 将我的 Android 设备连接到我的 PC 并将其用作 GSM 调制解调器来与其通信 这里是参
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • Dagger 2 没有生成我的组件类

    我正在使用 Dagger 2 创建我的依赖注入 几个小时前它还在工作 但现在不再生成组件 这是我创建组件的地方 public class App extends Application CacheComponent mCacheCompon
  • Android 如何将总天数准确更改为年、月、日?

    我正在做一个应用程序 该应用程序与根据给定的生日日期输入获取一个人的年龄有关 为此 我从下面的代码中获取从该日期到当前日期的总天数 String strThatDay 1991 05 10 SimpleDateFormat formatte
  • 上网本上可以进行Android开发吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想使用我的上网本进行 Android 开发 但是当我尝试使用 Eclipse 运行 SDK 时 没有加载任何内容 上网本对于 Android 开发来
  • 在命令行上卸载 Android SDK 的选定部分

    这与 卸载旧的 Android SDK 版本 https stackoverflow com questions 15182377 uninstall old android sdk versions 除非我想在无头 Linux CI 服务
  • Android - 以编程方式选择菜单选项

    有没有办法以编程方式选择菜单选项 基本上 我希望视图中的按钮能够执行与按特定菜单选项相同的操作 我正在考虑尝试调用 onOptionsItemSelected MenuItem item 但我不知道要为菜单项添加什么 是的 有一种方法可以选
  • Dagger 2 中“HasFragmentInjector”的实际用法是什么

    我之前已经实现了 dagger2 v2 2 但现在他们也添加了 dagger android 部分 所以我正在用它创建示例项目 我知道旧的方法论 Provide and Modules and 成分等注释 但从 Dagger 2 8 开始

随机推荐

  • 如何将旧日志文件导入graylog作为输入?

    我能够设置灰色日志服务器和graylog web 并能够在 apache2 tomcat 和其他应用程序的帮助下设置生成日志的输入灰色日志收集器 e g apache access type file path var log apache
  • Mac OSX 在构建 MonoDevelop iOS 应用程序时要求钥匙串访问

    在 Mac 上的 MonoDevelop 中构建项目时 我收到消息 MAC OS X 想要进行更改 请键入管理员的名称和密码以允许此操作 MAC OSX 想要使用系统钥匙串 我找到了帖子Mac OS X 想要在编译项目时使用系统钥匙串但这并
  • 程序集 x86 NASM - 避免读取返回键

    我刚刚开始学习汇编 但没有找到任何有帮助的有用内容 我正在创建一个简单的程序来读取用户输入 基本上 section bss opA resw 1 opB resw 1 section text global start inputA mov
  • 如何将 16 位 wav 转换为原始音频

    我正在尝试使用 sox 将星号语音邮件转换为原始音频 原始wav的编码信息是PCM S16 LE 所以我想我可以这样做sox msg0000 wav msg0001 raw但其中的原始文件是乱码 根据 VLC 的说法 与 6 秒的源文件相比
  • 上传具有多种变体选项的新产品

    我正在尝试通过 ruby 而不是使用 Rails 上传产品 我已通过 API 上传了 100 多个产品 但我无法上传具有多个选项值的产品 即使我分配三个选项值 它也不会填充其他两个 这是脚本 require shopify api requ
  • NSArray initWithObjects: 是否保留对象?

    当使用 initWithObjects 将对象添加到 NSArray 时 任何人都可以为我确认这些项目被保留 我很确定它们是 但是找不到有关 initWithObjects 的任何地方提到它 CREATE DRINKS Coffee dri
  • 从 httpsession 检索浏览器区域设置?

    是否可以从 httpsession 对象 javax servlet http HttpSession 派生首选语言 可以从 servletrequest 中获取它 但我没有 感谢您的任何想法 斯文 用户的首选区域设置可作为请求标头 Acc
  • 在 Oracle DB 的 CLOB 字段中存储文件

    我的 oracle 表中有一个具有 CLOB 数据类型的列 如何在此列中存储 txt 文件以及如何检索同一文件 下面是表定义 fileID Number logFile CLOB 提前致谢 在 PL SQL 中将文件加载到 CLOB 中非常
  • 在R中逐行读取大文件而不带标题

    我在 R 中有一个非常大的数据文件 千兆 如果我尝试用 R 打开它 我会收到内存不足错误 我需要逐行读取文件并进行一些分析 我发现了一个关于这个问题的上一个问题 其中文件是由 n 行读取并跳转到带有 clump 的某些行 我已经使用了 Ni
  • Protractor:如何让配置文件更加灵活?

    我有一个想法让我的配置更加灵活 例如我有 10000 个具有相同参数的配置文件 seleniumAddress http localhost 4444 wd hub specs C Users Lilia Sapurina Desktop
  • 找不到经过训练的 NLU 模型(Actions on Google)

    我们正在使用 google SDK 上的 Actions 开发启动 我们迁移了我们的开发项目 UAT 突然它停止工作了 以前我们使用相同的方法并且每次都有效 机器人对初始短语响应一次 然后停止响应 它说抱歉 机器人名称 没有响应 请稍后再试
  • 如何在 Android 上打印堆栈跟踪(带有符号函数名称)?

    这个问题已经被问过很多次了 但从未得到真正的答案 今天我花了 5 到 6 个小时尝试将一些库移植到 Android libunwind liwdfl 这些库可能从未打算在 ARM 上运行 当然 无济于事 问题是Android缺少backtr
  • 当MySql数据库中添加新记录时,使用Jquery自动更新Div

    我正在为我的朋友制作一个社交网站 我想知道当数据库中添加新记录时 如何更新包含数据库中少量插入记录的 Div 简而言之 你一定见过 Facebook 的实时通知 当有人做某事时 这些通知就会淡出 这一切都发生在没有刷新整个实时通知 div
  • 以编程方式检查 SD 卡是否可用

    我的应用程序适用于仅具有 SD 卡的手机 因此 我想以编程方式检查 SD 卡是否可用以及如何找到 SD 卡可用空间 是否可以 如果是 我该怎么做 Boolean isSDPresent android os Environment getE
  • 在 Windows 中托管 Git 存储库

    目前是否有办法在 Windows 中托管共享 Git 存储库 据我所知 您可以使用以下命令在 Linux 中配置 Git 服务 git daemon 是否有本地 Windows 选项 缺少共享文件夹 来托管 Git 服务 编辑 我目前正在使
  • 创建两列无​​序列表

    我希望制作一个类似于下面的两列无序列表 但也想知道如何整合加号的图像 我正在寻找一种没有 CSS3 优点的解决方案 以便它可以支持较旧的浏览器 这是我的网站的链接 http jobspark ca job listings 由于我正在使用
  • magento 的 NGINX-FPM 配置设置

    我正在运行一个用 magento 开发的电子商务网站 我的服务器有 512mb RAM 和 2 6 core2duo 当我在网站上一次发送 50 个请求时 除了少数请求外 它不会响应 我也安装了清漆 我想知道我想要为我的网站进行的最佳设置
  • 变异,触发器/函数可能看不到它 - 触发器执行期间出错

    CREATE OR REPLACE TRIGGER UPDATE TEST 280510 AFTER insert on TEST TRNCOMPVISIT declare V TRNCOMPNO NUMBER 10 CURSOR C1 I
  • 使用 Findbugs 编写一个检测器来搜索“System.out.println”的使用

    我正在尝试编写一个错误检测器来使用 Findbugs 查找方法调用 System out println 的实例 我知道字节码中的 System out println 被编译为对 GETSTATIC 的调用 将 System out 推入
  • android - 活动切换时意外的短暂方向变化

    我想在我的 Android 应用程序中动态设置屏幕方向 为此我使用 activity setRequestedOrientation ActivityInfo SCREEN ORIENTATION PORTRAIT 和类似的 到目前为止 效